@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/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
|
@@ -2287,16 +2287,25 @@ var BaseHttpRequest = class {
|
|
|
2287
2287
|
}
|
|
2288
2288
|
};
|
|
2289
2289
|
|
|
2290
|
+
// src/task/constants.ts
|
|
2291
|
+
var DEFAULT_POLL_INTERVAL = 100;
|
|
2292
|
+
var DEFAULT_CONCURRENCY = 1;
|
|
2293
|
+
var DEFAULT_WARN_AT_O = 100;
|
|
2294
|
+
var DEFAULT_BATCH_POLLING_TIMEOUT = 100;
|
|
2295
|
+
|
|
2290
2296
|
// src/task/Poller.ts
|
|
2291
2297
|
var Poller = class {
|
|
2292
|
-
constructor(pollFunction, performWorkFunction, pollerOptions, logger) {
|
|
2298
|
+
constructor(pollerId, pollFunction, performWorkFunction, pollerOptions, logger) {
|
|
2293
2299
|
this.performWorkFunction = async () => {
|
|
2294
2300
|
};
|
|
2295
2301
|
this.polling = false;
|
|
2296
2302
|
this._tasksInProcess = 0;
|
|
2303
|
+
this._counterAtO = 0;
|
|
2304
|
+
this._pollerId = "";
|
|
2297
2305
|
this.options = {
|
|
2298
|
-
pollInterval:
|
|
2299
|
-
concurrency:
|
|
2306
|
+
pollInterval: DEFAULT_POLL_INTERVAL,
|
|
2307
|
+
concurrency: DEFAULT_CONCURRENCY,
|
|
2308
|
+
warnAtO: DEFAULT_WARN_AT_O
|
|
2300
2309
|
};
|
|
2301
2310
|
this.logger = noopLogger;
|
|
2302
2311
|
/**
|
|
@@ -2323,10 +2332,30 @@ var Poller = class {
|
|
|
2323
2332
|
};
|
|
2324
2333
|
this.poll = async () => {
|
|
2325
2334
|
while (this.isPolling) {
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2335
|
+
try {
|
|
2336
|
+
const count = Math.max(
|
|
2337
|
+
0,
|
|
2338
|
+
this.options.concurrency - this._tasksInProcess
|
|
2339
|
+
);
|
|
2340
|
+
if (count === 0) {
|
|
2341
|
+
this.logger.debug(
|
|
2342
|
+
"Max in process reached, Will skip polling for " + this._pollerId
|
|
2343
|
+
);
|
|
2344
|
+
this._counterAtO++;
|
|
2345
|
+
if (this._counterAtO > (this.options.warnAtO ?? 100)) {
|
|
2346
|
+
this.logger.info(
|
|
2347
|
+
`Not polling anything because in process tasks is maxed as concurrency level. ${this._pollerId}`
|
|
2348
|
+
);
|
|
2349
|
+
}
|
|
2350
|
+
} else {
|
|
2351
|
+
this._counterAtO = 0;
|
|
2352
|
+
const tasksResult = await this.pollFunction(count);
|
|
2353
|
+
this._tasksInProcess = this._tasksInProcess + (tasksResult ?? []).length;
|
|
2354
|
+
tasksResult.forEach(this.performWork);
|
|
2355
|
+
}
|
|
2356
|
+
} catch (e) {
|
|
2357
|
+
this.logger.error(`Error polling for tasks: ${e.message}`, e);
|
|
2358
|
+
}
|
|
2330
2359
|
await new Promise(
|
|
2331
2360
|
(r) => this.isPolling ? this.timeoutHandler = setTimeout(
|
|
2332
2361
|
() => r(true),
|
|
@@ -2335,6 +2364,7 @@ var Poller = class {
|
|
|
2335
2364
|
);
|
|
2336
2365
|
}
|
|
2337
2366
|
};
|
|
2367
|
+
this._pollerId = pollerId;
|
|
2338
2368
|
this.pollFunction = pollFunction;
|
|
2339
2369
|
this.performWorkFunction = performWorkFunction;
|
|
2340
2370
|
this.options = { ...this.options, ...pollerOptions };
|
|
@@ -2357,6 +2387,13 @@ var DEFAULT_ERROR_MESSAGE = "An unknown error occurred";
|
|
|
2357
2387
|
var MAX_RETRIES = 3;
|
|
2358
2388
|
var noopErrorHandler = (__error) => {
|
|
2359
2389
|
};
|
|
2390
|
+
var defaultRunnerOptions = {
|
|
2391
|
+
workerID: "",
|
|
2392
|
+
pollInterval: DEFAULT_POLL_INTERVAL,
|
|
2393
|
+
domain: void 0,
|
|
2394
|
+
concurrency: DEFAULT_CONCURRENCY,
|
|
2395
|
+
batchPollingTimeout: DEFAULT_BATCH_POLLING_TIMEOUT
|
|
2396
|
+
};
|
|
2360
2397
|
var TaskRunner = class {
|
|
2361
2398
|
constructor({
|
|
2362
2399
|
worker,
|
|
@@ -2370,6 +2407,9 @@ var TaskRunner = class {
|
|
|
2370
2407
|
*/
|
|
2371
2408
|
this.startPolling = () => {
|
|
2372
2409
|
this.poller.startPolling();
|
|
2410
|
+
this.logger.info(
|
|
2411
|
+
`TaskWorker ${this.worker.taskDefName} initialized with concurrency of ${this.poller.options.concurrency} and poll interval of ${this.poller.options.pollInterval}`
|
|
2412
|
+
);
|
|
2373
2413
|
};
|
|
2374
2414
|
/**
|
|
2375
2415
|
* Stops Polling for work
|
|
@@ -2379,13 +2419,15 @@ var TaskRunner = class {
|
|
|
2379
2419
|
};
|
|
2380
2420
|
this.batchPoll = async (count) => {
|
|
2381
2421
|
const { workerID } = this.options;
|
|
2382
|
-
const
|
|
2422
|
+
const tasks = await this.taskResource.batchPoll(
|
|
2383
2423
|
this.worker.taskDefName,
|
|
2384
2424
|
workerID,
|
|
2385
2425
|
this.worker.domain ?? this.options.domain,
|
|
2386
|
-
count
|
|
2426
|
+
count,
|
|
2427
|
+
this.options.batchPollingTimeout ?? 100
|
|
2428
|
+
// default batch poll defined in the method
|
|
2387
2429
|
);
|
|
2388
|
-
return
|
|
2430
|
+
return tasks;
|
|
2389
2431
|
};
|
|
2390
2432
|
this.updateTaskWithRetry = async (task, taskResult) => {
|
|
2391
2433
|
let retryCount = 0;
|
|
@@ -2415,7 +2457,7 @@ var TaskRunner = class {
|
|
|
2415
2457
|
workflowInstanceId: task.workflowInstanceId,
|
|
2416
2458
|
taskId: task.taskId
|
|
2417
2459
|
});
|
|
2418
|
-
this.logger.debug(`
|
|
2460
|
+
this.logger.debug(`Task has executed successfully ${task.taskId}`);
|
|
2419
2461
|
} catch (error) {
|
|
2420
2462
|
await this.updateTaskWithRetry(task, {
|
|
2421
2463
|
workflowInstanceId: task.workflowInstanceId,
|
|
@@ -2444,12 +2486,16 @@ var TaskRunner = class {
|
|
|
2444
2486
|
this.taskResource = taskResource;
|
|
2445
2487
|
this.logger = logger;
|
|
2446
2488
|
this.worker = worker;
|
|
2447
|
-
this.options = options;
|
|
2489
|
+
this.options = { ...defaultRunnerOptions, ...options };
|
|
2448
2490
|
this.errorHandler = errorHandler;
|
|
2449
2491
|
this.poller = new Poller(
|
|
2492
|
+
worker.taskDefName,
|
|
2450
2493
|
this.batchPoll,
|
|
2451
2494
|
this.executeTask,
|
|
2452
|
-
{
|
|
2495
|
+
{
|
|
2496
|
+
concurrency: worker.concurrency ?? options.concurrency,
|
|
2497
|
+
pollInterval: worker.pollInterval ?? options.pollInterval
|
|
2498
|
+
},
|
|
2453
2499
|
this.logger
|
|
2454
2500
|
);
|
|
2455
2501
|
}
|
|
@@ -2462,6 +2508,9 @@ var TaskRunner = class {
|
|
|
2462
2508
|
concurrency: newOptions.concurrency,
|
|
2463
2509
|
pollInterval: newOptions.pollInterval
|
|
2464
2510
|
});
|
|
2511
|
+
this.logger.info(
|
|
2512
|
+
`TaskWorker ${this.worker.taskDefName} configuration updated with concurrency of ${this.poller.options.concurrency} and poll interval of ${this.poller.options.pollInterval}`
|
|
2513
|
+
);
|
|
2465
2514
|
this.options = newOptions;
|
|
2466
2515
|
}
|
|
2467
2516
|
get getOptions() {
|
|
@@ -2473,24 +2522,36 @@ var TaskRunner = class {
|
|
|
2473
2522
|
var import_os = __toESM(require("os"));
|
|
2474
2523
|
var defaultManagerOptions = {
|
|
2475
2524
|
workerID: "",
|
|
2476
|
-
pollInterval:
|
|
2525
|
+
pollInterval: DEFAULT_POLL_INTERVAL,
|
|
2477
2526
|
domain: void 0,
|
|
2478
|
-
concurrency:
|
|
2527
|
+
concurrency: DEFAULT_CONCURRENCY,
|
|
2528
|
+
batchPollingTimeout: DEFAULT_BATCH_POLLING_TIMEOUT
|
|
2479
2529
|
};
|
|
2480
2530
|
function workerId(options) {
|
|
2481
2531
|
return options.workerID ?? import_os.default.hostname();
|
|
2482
2532
|
}
|
|
2483
2533
|
var TaskManager = class {
|
|
2484
2534
|
constructor(client, workers, config = {}) {
|
|
2485
|
-
this.
|
|
2535
|
+
this.workerRunners = /* @__PURE__ */ new Map();
|
|
2486
2536
|
this.polling = false;
|
|
2487
2537
|
this.workerManagerWorkerOptions = (worker) => {
|
|
2488
2538
|
return {
|
|
2489
2539
|
...this.options,
|
|
2490
2540
|
concurrency: worker.concurrency ?? this.options.concurrency,
|
|
2541
|
+
pollInterval: worker.pollInterval ?? this.options.pollInterval,
|
|
2491
2542
|
domain: worker.domain ?? this.options.domain
|
|
2492
2543
|
};
|
|
2493
2544
|
};
|
|
2545
|
+
this.updatePollingOptionForWorker = (workerTaskDefName, options) => {
|
|
2546
|
+
const maybeRunner = this.workerRunners.get(workerTaskDefName);
|
|
2547
|
+
if (maybeRunner != null) {
|
|
2548
|
+
maybeRunner.updateOptions(options);
|
|
2549
|
+
} else {
|
|
2550
|
+
this.logger.info(
|
|
2551
|
+
`No runner found for worker with taskDefName: ${workerTaskDefName}`
|
|
2552
|
+
);
|
|
2553
|
+
}
|
|
2554
|
+
};
|
|
2494
2555
|
/**
|
|
2495
2556
|
* new options will get merged to existing options
|
|
2496
2557
|
* @param options new options to update polling options
|
|
@@ -2501,24 +2562,30 @@ var TaskManager = class {
|
|
|
2501
2562
|
...this.workerManagerWorkerOptions(worker),
|
|
2502
2563
|
...options
|
|
2503
2564
|
};
|
|
2504
|
-
|
|
2505
|
-
runners.forEach((runner) => {
|
|
2506
|
-
runner.updateOptions(newOptions);
|
|
2507
|
-
});
|
|
2565
|
+
this.updatePollingOptionForWorker(worker.taskDefName, newOptions);
|
|
2508
2566
|
});
|
|
2509
2567
|
this.options.concurrency = options.concurrency ?? this.options.concurrency;
|
|
2510
2568
|
this.options.pollInterval = options.pollInterval ?? this.options.pollInterval;
|
|
2511
2569
|
};
|
|
2570
|
+
this.sanityCheck = () => {
|
|
2571
|
+
if (this.workers.length === 0) {
|
|
2572
|
+
throw new Error("No workers supplied to TaskManager");
|
|
2573
|
+
}
|
|
2574
|
+
const workerIDs = /* @__PURE__ */ new Set();
|
|
2575
|
+
for (const item of this.workers) {
|
|
2576
|
+
if (workerIDs.has(item.taskDefName)) {
|
|
2577
|
+
throw new Error(`Duplicate worker taskDefName: ${item.taskDefName}`);
|
|
2578
|
+
}
|
|
2579
|
+
workerIDs.add(item.taskDefName);
|
|
2580
|
+
}
|
|
2581
|
+
};
|
|
2512
2582
|
/**
|
|
2513
2583
|
* Start polling for tasks
|
|
2514
2584
|
*/
|
|
2515
2585
|
this.startPolling = () => {
|
|
2586
|
+
this.sanityCheck();
|
|
2516
2587
|
this.workers.forEach((worker) => {
|
|
2517
|
-
this.tasks[worker.taskDefName] = [];
|
|
2518
2588
|
const options = this.workerManagerWorkerOptions(worker);
|
|
2519
|
-
this.logger.debug(
|
|
2520
|
-
`Starting taskDefName=${worker.taskDefName} concurrency=${options.concurrency} domain=${options.domain}`
|
|
2521
|
-
);
|
|
2522
2589
|
const runner = new TaskRunner({
|
|
2523
2590
|
worker,
|
|
2524
2591
|
options,
|
|
@@ -2527,7 +2594,7 @@ var TaskManager = class {
|
|
|
2527
2594
|
onError: this.errorHandler
|
|
2528
2595
|
});
|
|
2529
2596
|
runner.startPolling();
|
|
2530
|
-
this.
|
|
2597
|
+
this.workerRunners.set(worker.taskDefName, runner);
|
|
2531
2598
|
});
|
|
2532
2599
|
this.polling = true;
|
|
2533
2600
|
};
|
|
@@ -2535,11 +2602,10 @@ var TaskManager = class {
|
|
|
2535
2602
|
* Stops polling for tasks
|
|
2536
2603
|
*/
|
|
2537
2604
|
this.stopPolling = async () => {
|
|
2538
|
-
for (const
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
);
|
|
2542
|
-
this.tasks[taskType] = [];
|
|
2605
|
+
for (const [workerTaskDefName, runner] of this.workerRunners) {
|
|
2606
|
+
this.logger.debug(`Stopping taskDefName=${workerTaskDefName}`);
|
|
2607
|
+
await runner.stopPolling();
|
|
2608
|
+
this.workerRunners.delete(workerTaskDefName);
|
|
2543
2609
|
}
|
|
2544
2610
|
this.polling = false;
|
|
2545
2611
|
};
|