omelop
Version:
[](https://travis-ci.org/node-omelop/omelop)
39 lines • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.closeQueue = exports.addTask = exports.timeout = void 0;
let sequeue = require('seq-queue');
let 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} timeout timeout for task
*/
function addTask(key, fn, ontimeout, timeoutMs) {
let queue = queues[key];
if (!queue) {
queue = sequeue.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]) {
// ignore illeagle key
return;
}
queues[key].close(force);
queues[key] = undefined;
}
exports.closeQueue = closeQueue;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29tbW9uL21hbmFnZXIvdGFza01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBYW5DLElBQUksTUFBTSxHQUE2QixFQUFFLENBQUM7QUFFL0IsUUFBQSxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBRTFCOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixPQUFPLENBQUMsR0FBVyxFQUFFLEVBQTZCLEVBQUUsU0FBcUIsRUFBRSxTQUFpQjtJQUN4RyxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNSLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGVBQU8sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7S0FDdkI7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBUkQsMEJBUUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxHQUFXLEVBQUUsS0FBYztJQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2Qsc0JBQXNCO1FBQ3RCLE9BQU87S0FDVjtJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUM1QixDQUFDO0FBUkQsZ0NBUUMifQ==