@io-orkes/conductor-javascript 1.2.1-rc.2 → 1.2.1-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.d.mts +2 -2
- package/dist/browser.d.ts +2 -2
- package/dist/browser.js +89 -29
- package/dist/browser.js.map +1 -1
- package/dist/browser.mjs +89 -29
- package/dist/browser.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +89 -29
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +89 -29
- package/dist/index.mjs.map +1 -1
- package/dist/{types-1a12e2c4.d.ts → types-1e3272c6.d.ts} +6 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as OrkesApiConfig, C as ConductorHttpRequest, a as ConductorClient, b as ConductorClientAPIConfig, F as FetchFn, c as OpenAPIConfig, A as ApiRequestOptions, d as CancelablePromise } from './types-
|
|
2
|
-
export { p as Action, m as ApiError, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, a9 as ClearAssigment, au as CommonTaskDef, aR as ConductorError, ap as ConductorLogLevel, ao as ConductorLogger, j as ConductorWorker, ar as DefaultLogger, aq as DefaultLoggerConfig, ax as DoWhileTaskDef, aa as Escalate, E as EventHandler, _ as EventResourceService, ay as EventTaskDef, q as ExternalStorageLocation, ab as FFAAssignment, a7 as Fixed, aB as ForkJoinDynamicDef, az as ForkJoinTaskDef, G as GenerateTokenRequest, ac as HTScrollableSearchResultHumanTaskEntry, $ as HealthCheckResourceService, aC as HttpInputParameters, aD as HttpTaskDef, aT as HumanExecutor, ad as HumanTaskActionLogEntry, ae as HumanTaskEntry, af as HumanTaskLoad, ag as HumanTaskStateLogEntry, ah as HumanTaskTemplate, ai as HumanTaskTemplateEntry, aF as InlineTaskDef, aE as InlineTaskInputParameters, aA as JoinTaskDef, aG as JsonJQTransformTaskDef, aH as KafkaPublishInputParameters, aI as KafkaPublishTaskDef, aj as LeastBusyGroupMemberAssignment, a0 as MetadataResourceService, ak as Never, l as OnCancel, P as PollData, at as RequestType, r as RerunWorkflowRequest, s as Response, R as RunnerArgs, S as SaveScheduleRequest, a1 as SchedulerResourceService, t as ScrollableSearchResultWorkflowSummary, al as SearchResultHumanTaskEntry, u as SearchResultTask, v as SearchResultTaskSummary, w as SearchResultWorkflow, x as SearchResultWorkflowScheduleExecutionModel, y as SearchResultWorkflowSummary, aJ as SetVariableTaskDef, aK as SimpleTaskDef, z as SkipTaskRequest, D as StartWorkflow, H as StartWorkflowRequest, I as SubWorkflowParams, aL as SubWorkflowTaskDef, aM as SwitchTaskDef, J as Task, K as TaskDef, aw as TaskDefTypes, L as TaskDetails, T as TaskErrorHandler, M as TaskExecLog, i as TaskManager, h as TaskManagerConfig, g as TaskManagerOptions, a2 as TaskResourceService, N as TaskResult, aS as TaskResultStatus, f as TaskRunner, e as TaskRunnerOptions, Q as TaskSummary, av as TaskType, am as Terminate, aN as TerminateTaskDef, an as TimeoutPolicy, a3 as TokenResourceService, aO as WaitTaskDef, W as Workflow, a4 as WorkflowBulkResourceService, aP as WorkflowDef, aQ as WorkflowExecutor, a5 as WorkflowResourceService, U as WorkflowSchedule, V as WorkflowScheduleExecutionModel, X as WorkflowStatus, Y as WorkflowSummary, Z as WorkflowTask, aZ as conductorEventTask, aU as doWhileTask, aW as dynamicForkTask, aX as eventTask, a_ as forkTask, a$ as forkTaskJoin, br as generate, be as generateDoWhileTask, bf as generateEventTask, bg as generateForkJoinTask, bi as generateHTTPTask, bj as generateInlineTask, bk as generateJQTransformTask, bh as generateJoinTask, bl as generateKafkaPublishTask, bn as generateSetVariableTask, bd as generateSimpleTask, bm as generateSubWorkflowTask, bq as generateSwitchTask, bo as generateTerminateTask, bp as generateWaitTask, b0 as httpTask, b1 as inlineTask, b2 as joinTask, b3 as jsonJqTask, b4 as kafkaPublishTask, aV as newLoopTask, n as noopErrorHandler, as as noopLogger, b5 as setVariableTask, b6 as simpleTask, aY as sqsEventTask, b7 as subWorkflowTask, b8 as switchTask, bs as taskGenMapper, b9 as terminateTask, ba as waitTaskDuration, bb as waitTaskUntil, bc as workflow } from './types-
|
|
1
|
+
import { O as OrkesApiConfig, C as ConductorHttpRequest, a as ConductorClient, b as ConductorClientAPIConfig, F as FetchFn, c as OpenAPIConfig, A as ApiRequestOptions, d as CancelablePromise } from './types-1e3272c6.js';
|
|
2
|
+
export { p as Action, m as ApiError, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, a9 as ClearAssigment, au as CommonTaskDef, aR as ConductorError, ap as ConductorLogLevel, ao as ConductorLogger, j as ConductorWorker, ar as DefaultLogger, aq as DefaultLoggerConfig, ax as DoWhileTaskDef, aa as Escalate, E as EventHandler, _ as EventResourceService, ay as EventTaskDef, q as ExternalStorageLocation, ab as FFAAssignment, a7 as Fixed, aB as ForkJoinDynamicDef, az as ForkJoinTaskDef, G as GenerateTokenRequest, ac as HTScrollableSearchResultHumanTaskEntry, $ as HealthCheckResourceService, aC as HttpInputParameters, aD as HttpTaskDef, aT as HumanExecutor, ad as HumanTaskActionLogEntry, ae as HumanTaskEntry, af as HumanTaskLoad, ag as HumanTaskStateLogEntry, ah as HumanTaskTemplate, ai as HumanTaskTemplateEntry, aF as InlineTaskDef, aE as InlineTaskInputParameters, aA as JoinTaskDef, aG as JsonJQTransformTaskDef, aH as KafkaPublishInputParameters, aI as KafkaPublishTaskDef, aj as LeastBusyGroupMemberAssignment, a0 as MetadataResourceService, ak as Never, l as OnCancel, P as PollData, at as RequestType, r as RerunWorkflowRequest, s as Response, R as RunnerArgs, S as SaveScheduleRequest, a1 as SchedulerResourceService, t as ScrollableSearchResultWorkflowSummary, al as SearchResultHumanTaskEntry, u as SearchResultTask, v as SearchResultTaskSummary, w as SearchResultWorkflow, x as SearchResultWorkflowScheduleExecutionModel, y as SearchResultWorkflowSummary, aJ as SetVariableTaskDef, aK as SimpleTaskDef, z as SkipTaskRequest, D as StartWorkflow, H as StartWorkflowRequest, I as SubWorkflowParams, aL as SubWorkflowTaskDef, aM as SwitchTaskDef, J as Task, K as TaskDef, aw as TaskDefTypes, L as TaskDetails, T as TaskErrorHandler, M as TaskExecLog, i as TaskManager, h as TaskManagerConfig, g as TaskManagerOptions, a2 as TaskResourceService, N as TaskResult, aS as TaskResultStatus, f as TaskRunner, e as TaskRunnerOptions, Q as TaskSummary, av as TaskType, am as Terminate, aN as TerminateTaskDef, an as TimeoutPolicy, a3 as TokenResourceService, aO as WaitTaskDef, W as Workflow, a4 as WorkflowBulkResourceService, aP as WorkflowDef, aQ as WorkflowExecutor, a5 as WorkflowResourceService, U as WorkflowSchedule, V as WorkflowScheduleExecutionModel, X as WorkflowStatus, Y as WorkflowSummary, Z as WorkflowTask, aZ as conductorEventTask, aU as doWhileTask, aW as dynamicForkTask, aX as eventTask, a_ as forkTask, a$ as forkTaskJoin, br as generate, be as generateDoWhileTask, bf as generateEventTask, bg as generateForkJoinTask, bi as generateHTTPTask, bj as generateInlineTask, bk as generateJQTransformTask, bh as generateJoinTask, bl as generateKafkaPublishTask, bn as generateSetVariableTask, bd as generateSimpleTask, bm as generateSubWorkflowTask, bq as generateSwitchTask, bo as generateTerminateTask, bp as generateWaitTask, b0 as httpTask, b1 as inlineTask, b2 as joinTask, b3 as jsonJqTask, b4 as kafkaPublishTask, aV as newLoopTask, n as noopErrorHandler, as as noopLogger, b5 as setVariableTask, b6 as simpleTask, aY as sqsEventTask, b7 as subWorkflowTask, b8 as switchTask, bs as taskGenMapper, b9 as terminateTask, ba as waitTaskDuration, bb as waitTaskUntil, bc as workflow } from './types-1e3272c6.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Takes a config with keyId and keySecret returns a promise with an instance of ConductorClient
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as OrkesApiConfig, C as ConductorHttpRequest, a as ConductorClient, b as ConductorClientAPIConfig, F as FetchFn, c as OpenAPIConfig, A as ApiRequestOptions, d as CancelablePromise } from './types-
|
|
2
|
-
export { p as Action, m as ApiError, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, a9 as ClearAssigment, au as CommonTaskDef, aR as ConductorError, ap as ConductorLogLevel, ao as ConductorLogger, j as ConductorWorker, ar as DefaultLogger, aq as DefaultLoggerConfig, ax as DoWhileTaskDef, aa as Escalate, E as EventHandler, _ as EventResourceService, ay as EventTaskDef, q as ExternalStorageLocation, ab as FFAAssignment, a7 as Fixed, aB as ForkJoinDynamicDef, az as ForkJoinTaskDef, G as GenerateTokenRequest, ac as HTScrollableSearchResultHumanTaskEntry, $ as HealthCheckResourceService, aC as HttpInputParameters, aD as HttpTaskDef, aT as HumanExecutor, ad as HumanTaskActionLogEntry, ae as HumanTaskEntry, af as HumanTaskLoad, ag as HumanTaskStateLogEntry, ah as HumanTaskTemplate, ai as HumanTaskTemplateEntry, aF as InlineTaskDef, aE as InlineTaskInputParameters, aA as JoinTaskDef, aG as JsonJQTransformTaskDef, aH as KafkaPublishInputParameters, aI as KafkaPublishTaskDef, aj as LeastBusyGroupMemberAssignment, a0 as MetadataResourceService, ak as Never, l as OnCancel, P as PollData, at as RequestType, r as RerunWorkflowRequest, s as Response, R as RunnerArgs, S as SaveScheduleRequest, a1 as SchedulerResourceService, t as ScrollableSearchResultWorkflowSummary, al as SearchResultHumanTaskEntry, u as SearchResultTask, v as SearchResultTaskSummary, w as SearchResultWorkflow, x as SearchResultWorkflowScheduleExecutionModel, y as SearchResultWorkflowSummary, aJ as SetVariableTaskDef, aK as SimpleTaskDef, z as SkipTaskRequest, D as StartWorkflow, H as StartWorkflowRequest, I as SubWorkflowParams, aL as SubWorkflowTaskDef, aM as SwitchTaskDef, J as Task, K as TaskDef, aw as TaskDefTypes, L as TaskDetails, T as TaskErrorHandler, M as TaskExecLog, i as TaskManager, h as TaskManagerConfig, g as TaskManagerOptions, a2 as TaskResourceService, N as TaskResult, aS as TaskResultStatus, f as TaskRunner, e as TaskRunnerOptions, Q as TaskSummary, av as TaskType, am as Terminate, aN as TerminateTaskDef, an as TimeoutPolicy, a3 as TokenResourceService, aO as WaitTaskDef, W as Workflow, a4 as WorkflowBulkResourceService, aP as WorkflowDef, aQ as WorkflowExecutor, a5 as WorkflowResourceService, U as WorkflowSchedule, V as WorkflowScheduleExecutionModel, X as WorkflowStatus, Y as WorkflowSummary, Z as WorkflowTask, aZ as conductorEventTask, aU as doWhileTask, aW as dynamicForkTask, aX as eventTask, a_ as forkTask, a$ as forkTaskJoin, br as generate, be as generateDoWhileTask, bf as generateEventTask, bg as generateForkJoinTask, bi as generateHTTPTask, bj as generateInlineTask, bk as generateJQTransformTask, bh as generateJoinTask, bl as generateKafkaPublishTask, bn as generateSetVariableTask, bd as generateSimpleTask, bm as generateSubWorkflowTask, bq as generateSwitchTask, bo as generateTerminateTask, bp as generateWaitTask, b0 as httpTask, b1 as inlineTask, b2 as joinTask, b3 as jsonJqTask, b4 as kafkaPublishTask, aV as newLoopTask, n as noopErrorHandler, as as noopLogger, b5 as setVariableTask, b6 as simpleTask, aY as sqsEventTask, b7 as subWorkflowTask, b8 as switchTask, bs as taskGenMapper, b9 as terminateTask, ba as waitTaskDuration, bb as waitTaskUntil, bc as workflow } from './types-
|
|
1
|
+
import { O as OrkesApiConfig, C as ConductorHttpRequest, a as ConductorClient, b as ConductorClientAPIConfig, F as FetchFn, c as OpenAPIConfig, A as ApiRequestOptions, d as CancelablePromise } from './types-1e3272c6.js';
|
|
2
|
+
export { p as Action, m as ApiError, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, a9 as ClearAssigment, au as CommonTaskDef, aR as ConductorError, ap as ConductorLogLevel, ao as ConductorLogger, j as ConductorWorker, ar as DefaultLogger, aq as DefaultLoggerConfig, ax as DoWhileTaskDef, aa as Escalate, E as EventHandler, _ as EventResourceService, ay as EventTaskDef, q as ExternalStorageLocation, ab as FFAAssignment, a7 as Fixed, aB as ForkJoinDynamicDef, az as ForkJoinTaskDef, G as GenerateTokenRequest, ac as HTScrollableSearchResultHumanTaskEntry, $ as HealthCheckResourceService, aC as HttpInputParameters, aD as HttpTaskDef, aT as HumanExecutor, ad as HumanTaskActionLogEntry, ae as HumanTaskEntry, af as HumanTaskLoad, ag as HumanTaskStateLogEntry, ah as HumanTaskTemplate, ai as HumanTaskTemplateEntry, aF as InlineTaskDef, aE as InlineTaskInputParameters, aA as JoinTaskDef, aG as JsonJQTransformTaskDef, aH as KafkaPublishInputParameters, aI as KafkaPublishTaskDef, aj as LeastBusyGroupMemberAssignment, a0 as MetadataResourceService, ak as Never, l as OnCancel, P as PollData, at as RequestType, r as RerunWorkflowRequest, s as Response, R as RunnerArgs, S as SaveScheduleRequest, a1 as SchedulerResourceService, t as ScrollableSearchResultWorkflowSummary, al as SearchResultHumanTaskEntry, u as SearchResultTask, v as SearchResultTaskSummary, w as SearchResultWorkflow, x as SearchResultWorkflowScheduleExecutionModel, y as SearchResultWorkflowSummary, aJ as SetVariableTaskDef, aK as SimpleTaskDef, z as SkipTaskRequest, D as StartWorkflow, H as StartWorkflowRequest, I as SubWorkflowParams, aL as SubWorkflowTaskDef, aM as SwitchTaskDef, J as Task, K as TaskDef, aw as TaskDefTypes, L as TaskDetails, T as TaskErrorHandler, M as TaskExecLog, i as TaskManager, h as TaskManagerConfig, g as TaskManagerOptions, a2 as TaskResourceService, N as TaskResult, aS as TaskResultStatus, f as TaskRunner, e as TaskRunnerOptions, Q as TaskSummary, av as TaskType, am as Terminate, aN as TerminateTaskDef, an as TimeoutPolicy, a3 as TokenResourceService, aO as WaitTaskDef, W as Workflow, a4 as WorkflowBulkResourceService, aP as WorkflowDef, aQ as WorkflowExecutor, a5 as WorkflowResourceService, U as WorkflowSchedule, V as WorkflowScheduleExecutionModel, X as WorkflowStatus, Y as WorkflowSummary, Z as WorkflowTask, aZ as conductorEventTask, aU as doWhileTask, aW as dynamicForkTask, aX as eventTask, a_ as forkTask, a$ as forkTaskJoin, br as generate, be as generateDoWhileTask, bf as generateEventTask, bg as generateForkJoinTask, bi as generateHTTPTask, bj as generateInlineTask, bk as generateJQTransformTask, bh as generateJoinTask, bl as generateKafkaPublishTask, bn as generateSetVariableTask, bd as generateSimpleTask, bm as generateSubWorkflowTask, bq as generateSwitchTask, bo as generateTerminateTask, bp as generateWaitTask, b0 as httpTask, b1 as inlineTask, b2 as joinTask, b3 as jsonJqTask, b4 as kafkaPublishTask, aV as newLoopTask, n as noopErrorHandler, as as noopLogger, b5 as setVariableTask, b6 as simpleTask, aY as sqsEventTask, b7 as subWorkflowTask, b8 as switchTask, bs as taskGenMapper, b9 as terminateTask, ba as waitTaskDuration, bb as waitTaskUntil, bc as workflow } from './types-1e3272c6.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Takes a config with keyId and keySecret returns a promise with an instance of ConductorClient
|
package/dist/index.js
CHANGED
|
@@ -2289,14 +2289,17 @@ var BaseHttpRequest = class {
|
|
|
2289
2289
|
|
|
2290
2290
|
// src/task/Poller.ts
|
|
2291
2291
|
var Poller = class {
|
|
2292
|
-
constructor(pollFunction, performWorkFunction, pollerOptions, logger) {
|
|
2292
|
+
constructor(pollerId, pollFunction, performWorkFunction, pollerOptions, logger) {
|
|
2293
2293
|
this.performWorkFunction = async () => {
|
|
2294
2294
|
};
|
|
2295
2295
|
this.polling = false;
|
|
2296
2296
|
this._tasksInProcess = 0;
|
|
2297
|
+
this._counterAtO = 0;
|
|
2298
|
+
this._pollerId = "";
|
|
2297
2299
|
this.options = {
|
|
2298
|
-
pollInterval:
|
|
2299
|
-
concurrency: 1
|
|
2300
|
+
pollInterval: 100,
|
|
2301
|
+
concurrency: 1,
|
|
2302
|
+
warnAtO: 100
|
|
2300
2303
|
};
|
|
2301
2304
|
this.logger = noopLogger;
|
|
2302
2305
|
/**
|
|
@@ -2323,10 +2326,30 @@ var Poller = class {
|
|
|
2323
2326
|
};
|
|
2324
2327
|
this.poll = async () => {
|
|
2325
2328
|
while (this.isPolling) {
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2329
|
+
try {
|
|
2330
|
+
const count = Math.max(
|
|
2331
|
+
0,
|
|
2332
|
+
this.options.concurrency - this._tasksInProcess
|
|
2333
|
+
);
|
|
2334
|
+
if (count == 0) {
|
|
2335
|
+
this.logger.debug(
|
|
2336
|
+
"Max in process reached, Will skip polling for " + this._pollerId
|
|
2337
|
+
);
|
|
2338
|
+
this._counterAtO++;
|
|
2339
|
+
if (this._counterAtO > (this.options.warnAtO ?? 100)) {
|
|
2340
|
+
this.logger.info(
|
|
2341
|
+
`Not polling anything because in process tasks is maxed as concurrency level. ${this._pollerId}`
|
|
2342
|
+
);
|
|
2343
|
+
}
|
|
2344
|
+
} else {
|
|
2345
|
+
this._counterAtO = 0;
|
|
2346
|
+
const tasksResult = await this.pollFunction(count);
|
|
2347
|
+
this._tasksInProcess = this._tasksInProcess + (tasksResult ?? []).length;
|
|
2348
|
+
tasksResult.forEach(this.performWork);
|
|
2349
|
+
}
|
|
2350
|
+
} catch (e) {
|
|
2351
|
+
this.logger.error(`Error polling for tasks: ${e.message}`, e);
|
|
2352
|
+
}
|
|
2330
2353
|
await new Promise(
|
|
2331
2354
|
(r) => this.isPolling ? this.timeoutHandler = setTimeout(
|
|
2332
2355
|
() => r(true),
|
|
@@ -2335,6 +2358,7 @@ var Poller = class {
|
|
|
2335
2358
|
);
|
|
2336
2359
|
}
|
|
2337
2360
|
};
|
|
2361
|
+
this._pollerId = pollerId;
|
|
2338
2362
|
this.pollFunction = pollFunction;
|
|
2339
2363
|
this.performWorkFunction = performWorkFunction;
|
|
2340
2364
|
this.options = { ...this.options, ...pollerOptions };
|
|
@@ -2357,6 +2381,13 @@ var DEFAULT_ERROR_MESSAGE = "An unknown error occurred";
|
|
|
2357
2381
|
var MAX_RETRIES = 3;
|
|
2358
2382
|
var noopErrorHandler = (__error) => {
|
|
2359
2383
|
};
|
|
2384
|
+
var defaultRunnerOptions = {
|
|
2385
|
+
workerID: "",
|
|
2386
|
+
pollInterval: 100,
|
|
2387
|
+
domain: void 0,
|
|
2388
|
+
concurrency: 1,
|
|
2389
|
+
batchPollingTimeout: 100
|
|
2390
|
+
};
|
|
2360
2391
|
var TaskRunner = class {
|
|
2361
2392
|
constructor({
|
|
2362
2393
|
worker,
|
|
@@ -2370,6 +2401,9 @@ var TaskRunner = class {
|
|
|
2370
2401
|
*/
|
|
2371
2402
|
this.startPolling = () => {
|
|
2372
2403
|
this.poller.startPolling();
|
|
2404
|
+
this.logger.info(
|
|
2405
|
+
`TaskWorker ${this.worker.taskDefName} initialized with concurrency of ${this.poller.options.concurrency} and poll interval of ${this.poller.options.pollInterval}`
|
|
2406
|
+
);
|
|
2373
2407
|
};
|
|
2374
2408
|
/**
|
|
2375
2409
|
* Stops Polling for work
|
|
@@ -2379,13 +2413,15 @@ var TaskRunner = class {
|
|
|
2379
2413
|
};
|
|
2380
2414
|
this.batchPoll = async (count) => {
|
|
2381
2415
|
const { workerID } = this.options;
|
|
2382
|
-
const
|
|
2416
|
+
const tasks = await this.taskResource.batchPoll(
|
|
2383
2417
|
this.worker.taskDefName,
|
|
2384
2418
|
workerID,
|
|
2385
2419
|
this.worker.domain ?? this.options.domain,
|
|
2386
|
-
count
|
|
2420
|
+
count,
|
|
2421
|
+
this.options.batchPollingTimeout ?? 100
|
|
2422
|
+
// default batch poll defined in the method
|
|
2387
2423
|
);
|
|
2388
|
-
return
|
|
2424
|
+
return tasks;
|
|
2389
2425
|
};
|
|
2390
2426
|
this.updateTaskWithRetry = async (task, taskResult) => {
|
|
2391
2427
|
let retryCount = 0;
|
|
@@ -2444,12 +2480,16 @@ var TaskRunner = class {
|
|
|
2444
2480
|
this.taskResource = taskResource;
|
|
2445
2481
|
this.logger = logger;
|
|
2446
2482
|
this.worker = worker;
|
|
2447
|
-
this.options = options;
|
|
2483
|
+
this.options = { ...defaultRunnerOptions, ...options };
|
|
2448
2484
|
this.errorHandler = errorHandler;
|
|
2449
2485
|
this.poller = new Poller(
|
|
2486
|
+
worker.taskDefName,
|
|
2450
2487
|
this.batchPoll,
|
|
2451
2488
|
this.executeTask,
|
|
2452
|
-
{
|
|
2489
|
+
{
|
|
2490
|
+
concurrency: worker.concurrency ?? options.concurrency,
|
|
2491
|
+
pollInterval: worker.pollInterval ?? options.pollInterval
|
|
2492
|
+
},
|
|
2453
2493
|
this.logger
|
|
2454
2494
|
);
|
|
2455
2495
|
}
|
|
@@ -2462,6 +2502,9 @@ var TaskRunner = class {
|
|
|
2462
2502
|
concurrency: newOptions.concurrency,
|
|
2463
2503
|
pollInterval: newOptions.pollInterval
|
|
2464
2504
|
});
|
|
2505
|
+
this.logger.info(
|
|
2506
|
+
`TaskWorker ${this.worker.taskDefName} configuration updated with concurrency of ${this.poller.options.concurrency} and poll interval of ${this.poller.options.pollInterval}`
|
|
2507
|
+
);
|
|
2465
2508
|
this.options = newOptions;
|
|
2466
2509
|
}
|
|
2467
2510
|
get getOptions() {
|
|
@@ -2473,24 +2516,36 @@ var TaskRunner = class {
|
|
|
2473
2516
|
var import_os = __toESM(require("os"));
|
|
2474
2517
|
var defaultManagerOptions = {
|
|
2475
2518
|
workerID: "",
|
|
2476
|
-
pollInterval:
|
|
2519
|
+
pollInterval: 100,
|
|
2477
2520
|
domain: void 0,
|
|
2478
|
-
concurrency: 1
|
|
2521
|
+
concurrency: 1,
|
|
2522
|
+
batchPollingTimeout: 100
|
|
2479
2523
|
};
|
|
2480
2524
|
function workerId(options) {
|
|
2481
2525
|
return options.workerID ?? import_os.default.hostname();
|
|
2482
2526
|
}
|
|
2483
2527
|
var TaskManager = class {
|
|
2484
2528
|
constructor(client, workers, config = {}) {
|
|
2485
|
-
this.
|
|
2529
|
+
this.workerRunners = /* @__PURE__ */ new Map();
|
|
2486
2530
|
this.polling = false;
|
|
2487
2531
|
this.workerManagerWorkerOptions = (worker) => {
|
|
2488
2532
|
return {
|
|
2489
2533
|
...this.options,
|
|
2490
2534
|
concurrency: worker.concurrency ?? this.options.concurrency,
|
|
2535
|
+
pollInterval: worker.pollInterval ?? this.options.pollInterval,
|
|
2491
2536
|
domain: worker.domain ?? this.options.domain
|
|
2492
2537
|
};
|
|
2493
2538
|
};
|
|
2539
|
+
this.updatePollingOptionForWorker = (workerTaskDefName, options) => {
|
|
2540
|
+
const maybeRunner = this.workerRunners.get(workerTaskDefName);
|
|
2541
|
+
if (maybeRunner != null) {
|
|
2542
|
+
maybeRunner.updateOptions(options);
|
|
2543
|
+
} else {
|
|
2544
|
+
this.logger.info(
|
|
2545
|
+
`No runner found for worker with taskDefName: ${workerTaskDefName}`
|
|
2546
|
+
);
|
|
2547
|
+
}
|
|
2548
|
+
};
|
|
2494
2549
|
/**
|
|
2495
2550
|
* new options will get merged to existing options
|
|
2496
2551
|
* @param options new options to update polling options
|
|
@@ -2501,24 +2556,30 @@ var TaskManager = class {
|
|
|
2501
2556
|
...this.workerManagerWorkerOptions(worker),
|
|
2502
2557
|
...options
|
|
2503
2558
|
};
|
|
2504
|
-
|
|
2505
|
-
runners.forEach((runner) => {
|
|
2506
|
-
runner.updateOptions(newOptions);
|
|
2507
|
-
});
|
|
2559
|
+
this.updatePollingOptionForWorker(worker.taskDefName, newOptions);
|
|
2508
2560
|
});
|
|
2509
2561
|
this.options.concurrency = options.concurrency ?? this.options.concurrency;
|
|
2510
2562
|
this.options.pollInterval = options.pollInterval ?? this.options.pollInterval;
|
|
2511
2563
|
};
|
|
2564
|
+
this.sanityCheck = () => {
|
|
2565
|
+
if (this.workers.length === 0) {
|
|
2566
|
+
throw new Error("No workers supplied to TaskManager");
|
|
2567
|
+
}
|
|
2568
|
+
const workerIDs = /* @__PURE__ */ new Set();
|
|
2569
|
+
for (const item of this.workers) {
|
|
2570
|
+
if (workerIDs.has(item.taskDefName)) {
|
|
2571
|
+
throw new Error(`Duplicate worker taskDefName: ${item.taskDefName}`);
|
|
2572
|
+
}
|
|
2573
|
+
workerIDs.add(item.taskDefName);
|
|
2574
|
+
}
|
|
2575
|
+
};
|
|
2512
2576
|
/**
|
|
2513
2577
|
* Start polling for tasks
|
|
2514
2578
|
*/
|
|
2515
2579
|
this.startPolling = () => {
|
|
2580
|
+
this.sanityCheck();
|
|
2516
2581
|
this.workers.forEach((worker) => {
|
|
2517
|
-
this.tasks[worker.taskDefName] = [];
|
|
2518
2582
|
const options = this.workerManagerWorkerOptions(worker);
|
|
2519
|
-
this.logger.debug(
|
|
2520
|
-
`Starting taskDefName=${worker.taskDefName} concurrency=${options.concurrency} domain=${options.domain}`
|
|
2521
|
-
);
|
|
2522
2583
|
const runner = new TaskRunner({
|
|
2523
2584
|
worker,
|
|
2524
2585
|
options,
|
|
@@ -2527,7 +2588,7 @@ var TaskManager = class {
|
|
|
2527
2588
|
onError: this.errorHandler
|
|
2528
2589
|
});
|
|
2529
2590
|
runner.startPolling();
|
|
2530
|
-
this.
|
|
2591
|
+
this.workerRunners.set(worker.taskDefName, runner);
|
|
2531
2592
|
});
|
|
2532
2593
|
this.polling = true;
|
|
2533
2594
|
};
|
|
@@ -2535,11 +2596,10 @@ var TaskManager = class {
|
|
|
2535
2596
|
* Stops polling for tasks
|
|
2536
2597
|
*/
|
|
2537
2598
|
this.stopPolling = async () => {
|
|
2538
|
-
for (const
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
);
|
|
2542
|
-
this.tasks[taskType] = [];
|
|
2599
|
+
for (const [workerTaskDefName, runner] of this.workerRunners) {
|
|
2600
|
+
this.logger.debug(`Stopping taskDefName=${workerTaskDefName}`);
|
|
2601
|
+
await runner.stopPolling();
|
|
2602
|
+
this.workerRunners.delete(workerTaskDefName);
|
|
2543
2603
|
}
|
|
2544
2604
|
this.polling = false;
|
|
2545
2605
|
};
|