@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/browser.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as OrkesApiConfig, C as ConductorHttpRequest, a as ConductorClient } from './types-
|
|
2
|
-
export { p as Action, m as ApiError, A as ApiRequestOptions, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, d as CancelablePromise, a9 as ClearAssigment, au as CommonTaskDef, b as ConductorClientAPIConfig, 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, F as FetchFn, 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, c as OpenAPIConfig, 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 } from './types-1e3272c6.js';
|
|
2
|
+
export { p as Action, m as ApiError, A as ApiRequestOptions, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, d as CancelablePromise, a9 as ClearAssigment, au as CommonTaskDef, b as ConductorClientAPIConfig, 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, F as FetchFn, 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, c as OpenAPIConfig, 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/browser.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as OrkesApiConfig, C as ConductorHttpRequest, a as ConductorClient } from './types-
|
|
2
|
-
export { p as Action, m as ApiError, A as ApiRequestOptions, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, d as CancelablePromise, a9 as ClearAssigment, au as CommonTaskDef, b as ConductorClientAPIConfig, 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, F as FetchFn, 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, c as OpenAPIConfig, 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 } from './types-1e3272c6.js';
|
|
2
|
+
export { p as Action, m as ApiError, A as ApiRequestOptions, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, d as CancelablePromise, a9 as ClearAssigment, au as CommonTaskDef, b as ConductorClientAPIConfig, 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, F as FetchFn, 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, c as OpenAPIConfig, 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/browser.js
CHANGED
|
@@ -2283,14 +2283,17 @@ var BaseHttpRequest = class {
|
|
|
2283
2283
|
|
|
2284
2284
|
// src/task/Poller.ts
|
|
2285
2285
|
var Poller = class {
|
|
2286
|
-
constructor(pollFunction, performWorkFunction, pollerOptions, logger) {
|
|
2286
|
+
constructor(pollerId, pollFunction, performWorkFunction, pollerOptions, logger) {
|
|
2287
2287
|
this.performWorkFunction = async () => {
|
|
2288
2288
|
};
|
|
2289
2289
|
this.polling = false;
|
|
2290
2290
|
this._tasksInProcess = 0;
|
|
2291
|
+
this._counterAtO = 0;
|
|
2292
|
+
this._pollerId = "";
|
|
2291
2293
|
this.options = {
|
|
2292
|
-
pollInterval:
|
|
2293
|
-
concurrency: 1
|
|
2294
|
+
pollInterval: 100,
|
|
2295
|
+
concurrency: 1,
|
|
2296
|
+
warnAtO: 100
|
|
2294
2297
|
};
|
|
2295
2298
|
this.logger = noopLogger;
|
|
2296
2299
|
/**
|
|
@@ -2317,10 +2320,30 @@ var Poller = class {
|
|
|
2317
2320
|
};
|
|
2318
2321
|
this.poll = async () => {
|
|
2319
2322
|
while (this.isPolling) {
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2323
|
+
try {
|
|
2324
|
+
const count = Math.max(
|
|
2325
|
+
0,
|
|
2326
|
+
this.options.concurrency - this._tasksInProcess
|
|
2327
|
+
);
|
|
2328
|
+
if (count == 0) {
|
|
2329
|
+
this.logger.debug(
|
|
2330
|
+
"Max in process reached, Will skip polling for " + this._pollerId
|
|
2331
|
+
);
|
|
2332
|
+
this._counterAtO++;
|
|
2333
|
+
if (this._counterAtO > (this.options.warnAtO ?? 100)) {
|
|
2334
|
+
this.logger.info(
|
|
2335
|
+
`Not polling anything because in process tasks is maxed as concurrency level. ${this._pollerId}`
|
|
2336
|
+
);
|
|
2337
|
+
}
|
|
2338
|
+
} else {
|
|
2339
|
+
this._counterAtO = 0;
|
|
2340
|
+
const tasksResult = await this.pollFunction(count);
|
|
2341
|
+
this._tasksInProcess = this._tasksInProcess + (tasksResult ?? []).length;
|
|
2342
|
+
tasksResult.forEach(this.performWork);
|
|
2343
|
+
}
|
|
2344
|
+
} catch (e) {
|
|
2345
|
+
this.logger.error(`Error polling for tasks: ${e.message}`, e);
|
|
2346
|
+
}
|
|
2324
2347
|
await new Promise(
|
|
2325
2348
|
(r) => this.isPolling ? this.timeoutHandler = setTimeout(
|
|
2326
2349
|
() => r(true),
|
|
@@ -2329,6 +2352,7 @@ var Poller = class {
|
|
|
2329
2352
|
);
|
|
2330
2353
|
}
|
|
2331
2354
|
};
|
|
2355
|
+
this._pollerId = pollerId;
|
|
2332
2356
|
this.pollFunction = pollFunction;
|
|
2333
2357
|
this.performWorkFunction = performWorkFunction;
|
|
2334
2358
|
this.options = { ...this.options, ...pollerOptions };
|
|
@@ -2351,6 +2375,13 @@ var DEFAULT_ERROR_MESSAGE = "An unknown error occurred";
|
|
|
2351
2375
|
var MAX_RETRIES = 3;
|
|
2352
2376
|
var noopErrorHandler = (__error) => {
|
|
2353
2377
|
};
|
|
2378
|
+
var defaultRunnerOptions = {
|
|
2379
|
+
workerID: "",
|
|
2380
|
+
pollInterval: 100,
|
|
2381
|
+
domain: void 0,
|
|
2382
|
+
concurrency: 1,
|
|
2383
|
+
batchPollingTimeout: 100
|
|
2384
|
+
};
|
|
2354
2385
|
var TaskRunner = class {
|
|
2355
2386
|
constructor({
|
|
2356
2387
|
worker,
|
|
@@ -2364,6 +2395,9 @@ var TaskRunner = class {
|
|
|
2364
2395
|
*/
|
|
2365
2396
|
this.startPolling = () => {
|
|
2366
2397
|
this.poller.startPolling();
|
|
2398
|
+
this.logger.info(
|
|
2399
|
+
`TaskWorker ${this.worker.taskDefName} initialized with concurrency of ${this.poller.options.concurrency} and poll interval of ${this.poller.options.pollInterval}`
|
|
2400
|
+
);
|
|
2367
2401
|
};
|
|
2368
2402
|
/**
|
|
2369
2403
|
* Stops Polling for work
|
|
@@ -2373,13 +2407,15 @@ var TaskRunner = class {
|
|
|
2373
2407
|
};
|
|
2374
2408
|
this.batchPoll = async (count) => {
|
|
2375
2409
|
const { workerID } = this.options;
|
|
2376
|
-
const
|
|
2410
|
+
const tasks = await this.taskResource.batchPoll(
|
|
2377
2411
|
this.worker.taskDefName,
|
|
2378
2412
|
workerID,
|
|
2379
2413
|
this.worker.domain ?? this.options.domain,
|
|
2380
|
-
count
|
|
2414
|
+
count,
|
|
2415
|
+
this.options.batchPollingTimeout ?? 100
|
|
2416
|
+
// default batch poll defined in the method
|
|
2381
2417
|
);
|
|
2382
|
-
return
|
|
2418
|
+
return tasks;
|
|
2383
2419
|
};
|
|
2384
2420
|
this.updateTaskWithRetry = async (task, taskResult) => {
|
|
2385
2421
|
let retryCount = 0;
|
|
@@ -2438,12 +2474,16 @@ var TaskRunner = class {
|
|
|
2438
2474
|
this.taskResource = taskResource;
|
|
2439
2475
|
this.logger = logger;
|
|
2440
2476
|
this.worker = worker;
|
|
2441
|
-
this.options = options;
|
|
2477
|
+
this.options = { ...defaultRunnerOptions, ...options };
|
|
2442
2478
|
this.errorHandler = errorHandler;
|
|
2443
2479
|
this.poller = new Poller(
|
|
2480
|
+
worker.taskDefName,
|
|
2444
2481
|
this.batchPoll,
|
|
2445
2482
|
this.executeTask,
|
|
2446
|
-
{
|
|
2483
|
+
{
|
|
2484
|
+
concurrency: worker.concurrency ?? options.concurrency,
|
|
2485
|
+
pollInterval: worker.pollInterval ?? options.pollInterval
|
|
2486
|
+
},
|
|
2447
2487
|
this.logger
|
|
2448
2488
|
);
|
|
2449
2489
|
}
|
|
@@ -2456,6 +2496,9 @@ var TaskRunner = class {
|
|
|
2456
2496
|
concurrency: newOptions.concurrency,
|
|
2457
2497
|
pollInterval: newOptions.pollInterval
|
|
2458
2498
|
});
|
|
2499
|
+
this.logger.info(
|
|
2500
|
+
`TaskWorker ${this.worker.taskDefName} configuration updated with concurrency of ${this.poller.options.concurrency} and poll interval of ${this.poller.options.pollInterval}`
|
|
2501
|
+
);
|
|
2459
2502
|
this.options = newOptions;
|
|
2460
2503
|
}
|
|
2461
2504
|
get getOptions() {
|
|
@@ -2467,24 +2510,36 @@ var TaskRunner = class {
|
|
|
2467
2510
|
var import_os = __toESM(require("os"));
|
|
2468
2511
|
var defaultManagerOptions = {
|
|
2469
2512
|
workerID: "",
|
|
2470
|
-
pollInterval:
|
|
2513
|
+
pollInterval: 100,
|
|
2471
2514
|
domain: void 0,
|
|
2472
|
-
concurrency: 1
|
|
2515
|
+
concurrency: 1,
|
|
2516
|
+
batchPollingTimeout: 100
|
|
2473
2517
|
};
|
|
2474
2518
|
function workerId(options) {
|
|
2475
2519
|
return options.workerID ?? import_os.default.hostname();
|
|
2476
2520
|
}
|
|
2477
2521
|
var TaskManager = class {
|
|
2478
2522
|
constructor(client, workers, config = {}) {
|
|
2479
|
-
this.
|
|
2523
|
+
this.workerRunners = /* @__PURE__ */ new Map();
|
|
2480
2524
|
this.polling = false;
|
|
2481
2525
|
this.workerManagerWorkerOptions = (worker) => {
|
|
2482
2526
|
return {
|
|
2483
2527
|
...this.options,
|
|
2484
2528
|
concurrency: worker.concurrency ?? this.options.concurrency,
|
|
2529
|
+
pollInterval: worker.pollInterval ?? this.options.pollInterval,
|
|
2485
2530
|
domain: worker.domain ?? this.options.domain
|
|
2486
2531
|
};
|
|
2487
2532
|
};
|
|
2533
|
+
this.updatePollingOptionForWorker = (workerTaskDefName, options) => {
|
|
2534
|
+
const maybeRunner = this.workerRunners.get(workerTaskDefName);
|
|
2535
|
+
if (maybeRunner != null) {
|
|
2536
|
+
maybeRunner.updateOptions(options);
|
|
2537
|
+
} else {
|
|
2538
|
+
this.logger.info(
|
|
2539
|
+
`No runner found for worker with taskDefName: ${workerTaskDefName}`
|
|
2540
|
+
);
|
|
2541
|
+
}
|
|
2542
|
+
};
|
|
2488
2543
|
/**
|
|
2489
2544
|
* new options will get merged to existing options
|
|
2490
2545
|
* @param options new options to update polling options
|
|
@@ -2495,24 +2550,30 @@ var TaskManager = class {
|
|
|
2495
2550
|
...this.workerManagerWorkerOptions(worker),
|
|
2496
2551
|
...options
|
|
2497
2552
|
};
|
|
2498
|
-
|
|
2499
|
-
runners.forEach((runner) => {
|
|
2500
|
-
runner.updateOptions(newOptions);
|
|
2501
|
-
});
|
|
2553
|
+
this.updatePollingOptionForWorker(worker.taskDefName, newOptions);
|
|
2502
2554
|
});
|
|
2503
2555
|
this.options.concurrency = options.concurrency ?? this.options.concurrency;
|
|
2504
2556
|
this.options.pollInterval = options.pollInterval ?? this.options.pollInterval;
|
|
2505
2557
|
};
|
|
2558
|
+
this.sanityCheck = () => {
|
|
2559
|
+
if (this.workers.length === 0) {
|
|
2560
|
+
throw new Error("No workers supplied to TaskManager");
|
|
2561
|
+
}
|
|
2562
|
+
const workerIDs = /* @__PURE__ */ new Set();
|
|
2563
|
+
for (const item of this.workers) {
|
|
2564
|
+
if (workerIDs.has(item.taskDefName)) {
|
|
2565
|
+
throw new Error(`Duplicate worker taskDefName: ${item.taskDefName}`);
|
|
2566
|
+
}
|
|
2567
|
+
workerIDs.add(item.taskDefName);
|
|
2568
|
+
}
|
|
2569
|
+
};
|
|
2506
2570
|
/**
|
|
2507
2571
|
* Start polling for tasks
|
|
2508
2572
|
*/
|
|
2509
2573
|
this.startPolling = () => {
|
|
2574
|
+
this.sanityCheck();
|
|
2510
2575
|
this.workers.forEach((worker) => {
|
|
2511
|
-
this.tasks[worker.taskDefName] = [];
|
|
2512
2576
|
const options = this.workerManagerWorkerOptions(worker);
|
|
2513
|
-
this.logger.debug(
|
|
2514
|
-
`Starting taskDefName=${worker.taskDefName} concurrency=${options.concurrency} domain=${options.domain}`
|
|
2515
|
-
);
|
|
2516
2577
|
const runner = new TaskRunner({
|
|
2517
2578
|
worker,
|
|
2518
2579
|
options,
|
|
@@ -2521,7 +2582,7 @@ var TaskManager = class {
|
|
|
2521
2582
|
onError: this.errorHandler
|
|
2522
2583
|
});
|
|
2523
2584
|
runner.startPolling();
|
|
2524
|
-
this.
|
|
2585
|
+
this.workerRunners.set(worker.taskDefName, runner);
|
|
2525
2586
|
});
|
|
2526
2587
|
this.polling = true;
|
|
2527
2588
|
};
|
|
@@ -2529,11 +2590,10 @@ var TaskManager = class {
|
|
|
2529
2590
|
* Stops polling for tasks
|
|
2530
2591
|
*/
|
|
2531
2592
|
this.stopPolling = async () => {
|
|
2532
|
-
for (const
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
);
|
|
2536
|
-
this.tasks[taskType] = [];
|
|
2593
|
+
for (const [workerTaskDefName, runner] of this.workerRunners) {
|
|
2594
|
+
this.logger.debug(`Stopping taskDefName=${workerTaskDefName}`);
|
|
2595
|
+
await runner.stopPolling();
|
|
2596
|
+
this.workerRunners.delete(workerTaskDefName);
|
|
2537
2597
|
}
|
|
2538
2598
|
this.polling = false;
|
|
2539
2599
|
};
|