diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2023-04-03 13:54:30 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2023-04-13 02:19:43 +0300 |
commit | a6bdd77f06f4d6e6b7876017d4c29bb41da8545f (patch) | |
tree | a8117d611a48e6e49b6b96f1d5b99338ebfba4e1 /src/jobd-master.js | |
parent | 0775fb2439a71a9bea3bb6e603c24ddd908a12a3 (diff) |
Diffstat (limited to 'src/jobd-master.js')
-rwxr-xr-x | src/jobd-master.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/jobd-master.js b/src/jobd-master.js index 34e03ba..3bdc15a 100755 --- a/src/jobd-master.js +++ b/src/jobd-master.js @@ -114,6 +114,7 @@ function initRequestHandler() { requestHandler.set('run-manual', onRunManual) requestHandler.set('pause', onPause) requestHandler.set('continue', onContinue) + requestHandler.set('send-signal', onSendSignal) } function usage() { @@ -223,3 +224,25 @@ function onContinue(data, requestNo, connection) { return 'ok' } + +/** + * @param {object} data + * @return {Promise<*>} + */ +async function onSendSignal(data) { + const {jobs} = data + + if (!Array.isArray(jobs)) + throw new Error('jobs must be array') + + for (let job of jobs) { + validateObjectSchema(job, [ + // name // type // required + ['id', 'i', true], + ['signal', 'i', true], + ['target', 's', true], + ]) + } + + return await workers.sendSignals(jobs) +}
\ No newline at end of file |