diff --git a/api/onnx_web/server/api.py b/api/onnx_web/server/api.py index ab568b59..3b8a8814 100644 --- a/api/onnx_web/server/api.py +++ b/api/onnx_web/server/api.py @@ -656,6 +656,8 @@ def job_cancel(server: ServerContext, pool: DevicePoolExecutor): if len(job_list) == 0: return error_reply("at least one job name is required") + elif len(job_list) > 10: + return error_reply("too many jobs") results: List[Dict[str, str]] = [] for job_name in job_list: @@ -680,6 +682,8 @@ def job_status(server: ServerContext, pool: DevicePoolExecutor): if len(job_list) == 0: return error_reply("at least one job name is required") + elif len(job_list) > 10: + return error_reply("too many jobs") records = [] diff --git a/gui/src/client/api.ts b/gui/src/client/api.ts index 3595a022..1e00ea43 100644 --- a/gui/src/client/api.ts +++ b/gui/src/client/api.ts @@ -1,6 +1,6 @@ /* eslint-disable max-lines */ import { doesExist, InvalidArgumentError, Maybe } from '@apextoaster/js-utils'; -import { create as batcher, keyResolver, windowScheduler } from '@yornaath/batshit'; +import { create as batcher, keyResolver, windowScheduler, windowedFiniteBatchScheduler } from '@yornaath/batshit'; import { ServerParams } from '../config.js'; import { FIXED_FLOAT, FIXED_INTEGER, STATUS_SUCCESS } from '../constants.js'; @@ -505,7 +505,10 @@ export function makeClient(root: string, batchInterval: number, token: Maybe) => client.status(jobs), resolver: keyResolver('name'), - scheduler: windowScheduler(batchInterval), + scheduler: windowedFiniteBatchScheduler({ + windowMs: batchInterval, + maxBatchSize: 10, + }), }); return {