@io-orkes/conductor-javascript 1.2.1-rc.2 → 1.2.1-rc.4
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 +96 -30
- package/dist/browser.js.map +1 -1
- package/dist/browser.mjs +96 -30
- 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 +96 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +96 -30
- 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
|
@@ -2281,16 +2281,25 @@ var BaseHttpRequest = class {
|
|
|
2281
2281
|
}
|
|
2282
2282
|
};
|
|
2283
2283
|
|
|
2284
|
+
// src/task/constants.ts
|
|
2285
|
+
var DEFAULT_POLL_INTERVAL = 100;
|
|
2286
|
+
var DEFAULT_CONCURRENCY = 1;
|
|
2287
|
+
var DEFAULT_WARN_AT_O = 100;
|
|
2288
|
+
var DEFAULT_BATCH_POLLING_TIMEOUT = 100;
|
|
2289
|
+
|
|
2284
2290
|
// src/task/Poller.ts
|
|
2285
2291
|
var Poller = class {
|
|
2286
|
-
constructor(pollFunction, performWorkFunction, pollerOptions, logger) {
|
|
2292
|
+
constructor(pollerId, pollFunction, performWorkFunction, pollerOptions, logger) {
|
|
2287
2293
|
this.performWorkFunction = async () => {
|
|
2288
2294
|
};
|
|
2289
2295
|
this.polling = false;
|
|
2290
2296
|
this._tasksInProcess = 0;
|
|
2297
|
+
this._counterAtO = 0;
|
|
2298
|
+
this._pollerId = "";
|
|
2291
2299
|
this.options = {
|
|
2292
|
-
pollInterval:
|
|
2293
|
-
concurrency:
|
|
2300
|
+
pollInterval: DEFAULT_POLL_INTERVAL,
|
|
2301
|
+
concurrency: DEFAULT_CONCURRENCY,
|
|
2302
|
+
warnAtO: DEFAULT_WARN_AT_O
|
|
2294
2303
|
};
|
|
2295
2304
|
this.logger = noopLogger;
|
|
2296
2305
|
/**
|
|
@@ -2317,10 +2326,30 @@ var Poller = class {
|
|
|
2317
2326
|
};
|
|
2318
2327
|
this.poll = async () => {
|
|
2319
2328
|
while (this.isPolling) {
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
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
|
+
}
|
|
2324
2353
|
await new Promise(
|
|
2325
2354
|
(r) => this.isPolling ? this.timeoutHandler = setTimeout(
|
|
2326
2355
|
() => r(true),
|
|
@@ -2329,6 +2358,7 @@ var Poller = class {
|
|
|
2329
2358
|
);
|
|
2330
2359
|
}
|
|
2331
2360
|
};
|
|
2361
|
+
this._pollerId = pollerId;
|
|
2332
2362
|
this.pollFunction = pollFunction;
|
|
2333
2363
|
this.performWorkFunction = performWorkFunction;
|
|
2334
2364
|
this.options = { ...this.options, ...pollerOptions };
|
|
@@ -2351,6 +2381,13 @@ var DEFAULT_ERROR_MESSAGE = "An unknown error occurred";
|
|
|
2351
2381
|
var MAX_RETRIES = 3;
|
|
2352
2382
|
var noopErrorHandler = (__error) => {
|
|
2353
2383
|
};
|
|
2384
|
+
var defaultRunnerOptions = {
|
|
2385
|
+
workerID: "",
|
|
2386
|
+
pollInterval: DEFAULT_POLL_INTERVAL,
|
|
2387
|
+
domain: void 0,
|
|
2388
|
+
concurrency: DEFAULT_CONCURRENCY,
|
|
2389
|
+
batchPollingTimeout: DEFAULT_BATCH_POLLING_TIMEOUT
|
|
2390
|
+
};
|
|
2354
2391
|
var TaskRunner = class {
|
|
2355
2392
|
constructor({
|
|
2356
2393
|
worker,
|
|
@@ -2364,6 +2401,9 @@ var TaskRunner = class {
|
|
|
2364
2401
|
*/
|
|
2365
2402
|
this.startPolling = () => {
|
|
2366
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
|
+
);
|
|
2367
2407
|
};
|
|
2368
2408
|
/**
|
|
2369
2409
|
* Stops Polling for work
|
|
@@ -2373,13 +2413,15 @@ var TaskRunner = class {
|
|
|
2373
2413
|
};
|
|
2374
2414
|
this.batchPoll = async (count) => {
|
|
2375
2415
|
const { workerID } = this.options;
|
|
2376
|
-
const
|
|
2416
|
+
const tasks = await this.taskResource.batchPoll(
|
|
2377
2417
|
this.worker.taskDefName,
|
|
2378
2418
|
workerID,
|
|
2379
2419
|
this.worker.domain ?? this.options.domain,
|
|
2380
|
-
count
|
|
2420
|
+
count,
|
|
2421
|
+
this.options.batchPollingTimeout ?? 100
|
|
2422
|
+
// default batch poll defined in the method
|
|
2381
2423
|
);
|
|
2382
|
-
return
|
|
2424
|
+
return tasks;
|
|
2383
2425
|
};
|
|
2384
2426
|
this.updateTaskWithRetry = async (task, taskResult) => {
|
|
2385
2427
|
let retryCount = 0;
|
|
@@ -2409,7 +2451,7 @@ var TaskRunner = class {
|
|
|
2409
2451
|
workflowInstanceId: task.workflowInstanceId,
|
|
2410
2452
|
taskId: task.taskId
|
|
2411
2453
|
});
|
|
2412
|
-
this.logger.debug(`
|
|
2454
|
+
this.logger.debug(`Task has executed successfully ${task.taskId}`);
|
|
2413
2455
|
} catch (error) {
|
|
2414
2456
|
await this.updateTaskWithRetry(task, {
|
|
2415
2457
|
workflowInstanceId: task.workflowInstanceId,
|
|
@@ -2438,12 +2480,16 @@ var TaskRunner = class {
|
|
|
2438
2480
|
this.taskResource = taskResource;
|
|
2439
2481
|
this.logger = logger;
|
|
2440
2482
|
this.worker = worker;
|
|
2441
|
-
this.options = options;
|
|
2483
|
+
this.options = { ...defaultRunnerOptions, ...options };
|
|
2442
2484
|
this.errorHandler = errorHandler;
|
|
2443
2485
|
this.poller = new Poller(
|
|
2486
|
+
worker.taskDefName,
|
|
2444
2487
|
this.batchPoll,
|
|
2445
2488
|
this.executeTask,
|
|
2446
|
-
{
|
|
2489
|
+
{
|
|
2490
|
+
concurrency: worker.concurrency ?? options.concurrency,
|
|
2491
|
+
pollInterval: worker.pollInterval ?? options.pollInterval
|
|
2492
|
+
},
|
|
2447
2493
|
this.logger
|
|
2448
2494
|
);
|
|
2449
2495
|
}
|
|
@@ -2456,6 +2502,9 @@ var TaskRunner = class {
|
|
|
2456
2502
|
concurrency: newOptions.concurrency,
|
|
2457
2503
|
pollInterval: newOptions.pollInterval
|
|
2458
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
|
+
);
|
|
2459
2508
|
this.options = newOptions;
|
|
2460
2509
|
}
|
|
2461
2510
|
get getOptions() {
|
|
@@ -2467,24 +2516,36 @@ var TaskRunner = class {
|
|
|
2467
2516
|
var import_os = __toESM(require("os"));
|
|
2468
2517
|
var defaultManagerOptions = {
|
|
2469
2518
|
workerID: "",
|
|
2470
|
-
pollInterval:
|
|
2519
|
+
pollInterval: DEFAULT_POLL_INTERVAL,
|
|
2471
2520
|
domain: void 0,
|
|
2472
|
-
concurrency:
|
|
2521
|
+
concurrency: DEFAULT_CONCURRENCY,
|
|
2522
|
+
batchPollingTimeout: DEFAULT_BATCH_POLLING_TIMEOUT
|
|
2473
2523
|
};
|
|
2474
2524
|
function workerId(options) {
|
|
2475
2525
|
return options.workerID ?? import_os.default.hostname();
|
|
2476
2526
|
}
|
|
2477
2527
|
var TaskManager = class {
|
|
2478
2528
|
constructor(client, workers, config = {}) {
|
|
2479
|
-
this.
|
|
2529
|
+
this.workerRunners = /* @__PURE__ */ new Map();
|
|
2480
2530
|
this.polling = false;
|
|
2481
2531
|
this.workerManagerWorkerOptions = (worker) => {
|
|
2482
2532
|
return {
|
|
2483
2533
|
...this.options,
|
|
2484
2534
|
concurrency: worker.concurrency ?? this.options.concurrency,
|
|
2535
|
+
pollInterval: worker.pollInterval ?? this.options.pollInterval,
|
|
2485
2536
|
domain: worker.domain ?? this.options.domain
|
|
2486
2537
|
};
|
|
2487
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
|
+
};
|
|
2488
2549
|
/**
|
|
2489
2550
|
* new options will get merged to existing options
|
|
2490
2551
|
* @param options new options to update polling options
|
|
@@ -2495,24 +2556,30 @@ var TaskManager = class {
|
|
|
2495
2556
|
...this.workerManagerWorkerOptions(worker),
|
|
2496
2557
|
...options
|
|
2497
2558
|
};
|
|
2498
|
-
|
|
2499
|
-
runners.forEach((runner) => {
|
|
2500
|
-
runner.updateOptions(newOptions);
|
|
2501
|
-
});
|
|
2559
|
+
this.updatePollingOptionForWorker(worker.taskDefName, newOptions);
|
|
2502
2560
|
});
|
|
2503
2561
|
this.options.concurrency = options.concurrency ?? this.options.concurrency;
|
|
2504
2562
|
this.options.pollInterval = options.pollInterval ?? this.options.pollInterval;
|
|
2505
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
|
+
};
|
|
2506
2576
|
/**
|
|
2507
2577
|
* Start polling for tasks
|
|
2508
2578
|
*/
|
|
2509
2579
|
this.startPolling = () => {
|
|
2580
|
+
this.sanityCheck();
|
|
2510
2581
|
this.workers.forEach((worker) => {
|
|
2511
|
-
this.tasks[worker.taskDefName] = [];
|
|
2512
2582
|
const options = this.workerManagerWorkerOptions(worker);
|
|
2513
|
-
this.logger.debug(
|
|
2514
|
-
`Starting taskDefName=${worker.taskDefName} concurrency=${options.concurrency} domain=${options.domain}`
|
|
2515
|
-
);
|
|
2516
2583
|
const runner = new TaskRunner({
|
|
2517
2584
|
worker,
|
|
2518
2585
|
options,
|
|
@@ -2521,7 +2588,7 @@ var TaskManager = class {
|
|
|
2521
2588
|
onError: this.errorHandler
|
|
2522
2589
|
});
|
|
2523
2590
|
runner.startPolling();
|
|
2524
|
-
this.
|
|
2591
|
+
this.workerRunners.set(worker.taskDefName, runner);
|
|
2525
2592
|
});
|
|
2526
2593
|
this.polling = true;
|
|
2527
2594
|
};
|
|
@@ -2529,11 +2596,10 @@ var TaskManager = class {
|
|
|
2529
2596
|
* Stops polling for tasks
|
|
2530
2597
|
*/
|
|
2531
2598
|
this.stopPolling = async () => {
|
|
2532
|
-
for (const
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
);
|
|
2536
|
-
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);
|
|
2537
2603
|
}
|
|
2538
2604
|
this.polling = false;
|
|
2539
2605
|
};
|