From 23c16a2c80f0614d0b31cba363bca66e1a60687b Mon Sep 17 00:00:00 2001 From: Evgeny Zinoviev Date: Tue, 16 Mar 2021 01:06:14 +0300 Subject: jobd: add add-target()/remove-target(); code refactoring --- src/lib/worker.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/lib/worker.js') diff --git a/src/lib/worker.js b/src/lib/worker.js index e53d03f..0be6a19 100644 --- a/src/lib/worker.js +++ b/src/lib/worker.js @@ -72,6 +72,25 @@ class Worker extends EventEmitter { } } + /** + * Deletes a queue. + * + * @param {string} target + */ + removeTarget(target) { + if (!(target in this.targets)) + throw new Error(`target '${target}' not found`) + + const {queue} = this.targets[target] + if (queue.length > 0) + throw new Error(`queue is not empty`) + + this.logger.debug(`deleteTarget: deleting target' ${target}'`) + queue.removeAllListeners() + queue.end() + delete this.targets[target] + } + /** * @param {string} target * @param {number} concurrency -- cgit v1.2.3