aboutsummaryrefslogtreecommitdiff
path: root/src/lib/worker.js
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2021-03-16 01:06:14 +0300
committerEvgeny Zinoviev <me@ch1p.io>2021-03-16 01:06:14 +0300
commit23c16a2c80f0614d0b31cba363bca66e1a60687b (patch)
tree6d019e63b5bc4d703d4319f444927ccc7c93f208 /src/lib/worker.js
parentcbbe60df32bc591758dd98e624a9f3b3c53f1d23 (diff)
jobd: add add-target()/remove-target(); code refactoring
Diffstat (limited to 'src/lib/worker.js')
-rw-r--r--src/lib/worker.js19
1 files changed, 19 insertions, 0 deletions
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
@@ -73,6 +73,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
*/