sdg
Version:
pomelo ts
39 lines • 2.23 kB
JavaScript
;
// TODO seq-queue的使用
Object.defineProperty(exports, "__esModule", { value: true });
exports.closeQueue = exports.addTask = exports.timeout = void 0;
const tslib_1 = require("tslib");
const seq_queue_1 = tslib_1.__importDefault(require("seq-queue"));
const queues = {};
exports.timeout = 3000;
/**
* Add tasks into task group. Create the task group if it dose not exist.
*
* @param {String} key task key
* @param {Function} fn task callback
* @param {Function} ontimeout task timeout callback
* @param {Number} timeoutMs timeout for task
*/
function addTask(key, fn, ontimeout, timeoutMs) {
let queue = queues[key];
if (!queue) {
queue = seq_queue_1.default.createQueue(exports.timeout);
queues[key] = queue;
}
return queue.push(fn, ontimeout, timeoutMs);
}
exports.addTask = addTask;
/**
* Destroy task group
*
* @param {String} key task key
* @param {Boolean} force whether close task group directly
*/
function closeQueue(key, force) {
if (!queues[key])
return;
queues[key].close(force);
delete queues[key];
}
exports.closeQueue = closeQueue;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL21hbmFnZXIvdGFza01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9CQUFvQjs7OztBQUVwQixrRUFBMkI7QUFXM0IsTUFBTSxNQUFNLEdBQTZCLEVBQUUsQ0FBQztBQUUvQixRQUFBLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFFNUI7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxHQUFXLEVBQUUsRUFBNkIsRUFBRSxTQUFxQixFQUFFLFNBQWlCO0lBQzFHLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsS0FBSyxHQUFHLG1CQUFFLENBQUMsV0FBVyxDQUFDLGVBQU8sQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7S0FDckI7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBUkQsMEJBUUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxHQUFXLEVBQUUsS0FBYztJQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU87SUFFekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNyQixDQUFDO0FBTEQsZ0NBS0MifQ==