From 613fd5fd3e7641732c54e21f771cbc2d6cc2651e Mon Sep 17 00:00:00 2001 From: Evgeny Zinoviev Date: Fri, 5 Mar 2021 03:01:06 +0300 Subject: jobd: add set-target-concurrency request --- src/jobd.js | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/jobd.js') diff --git a/src/jobd.js b/src/jobd.js index f8be71f..de8807f 100755 --- a/src/jobd.js +++ b/src/jobd.js @@ -5,7 +5,7 @@ const config = require('./lib/config') const db = require('./lib/db') const {uniq} = require('lodash') const {createCallablePromise} = require('./lib/util') -const {validateTargetsListFormat} = require('./lib/data-validator') +const {validateObjectSchema, validateTargetsListFormat} = require('./lib/data-validator') const RequestHandler = require('./lib/request-handler') const { Server, @@ -136,6 +136,7 @@ function initRequestHandler() { requestHandler.set('run-manual', onRunManual) requestHandler.set('pause', onPause) requestHandler.set('continue', onContinue) + requestHandler.set('set-target-concurrency', onSetTargetConcurrency) } function initServer() { @@ -324,6 +325,33 @@ function onContinue(data, requestNo, connection) { ) } +/** + * @param {object} data + * @param {number} requestNo + * @param {Connection} connection + */ +function onSetTargetConcurrency(data, requestNo, connection) { + try { + validateObjectSchema(data, [ + // name // type // required + ['concurrency', 'i', true], + ['target', 's', true], + ]) + } catch (e) { + connection.send( + new ResponseMessage(requestNo) + .setError(e.message) + ) + return + } + + worker.setTargetConcurrency(data.target, data.concurrency) + connection.send( + new ResponseMessage(requestNo) + .setData('ok') + ) +} + /** * @private * @param data -- cgit v1.2.3