@io-orkes/conductor-javascript 1.2.0 → 1.2.1-rc.2

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/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-9addaabb.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-9addaabb.js';
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-1a12e2c4.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-1a12e2c4.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-9addaabb.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-9addaabb.js';
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-1a12e2c4.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-1a12e2c4.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,11 +2289,11 @@ var BaseHttpRequest = class {
2289
2289
 
2290
2290
  // src/task/Poller.ts
2291
2291
  var Poller = class {
2292
- constructor(pollFunction, pollerOptions, logger) {
2293
- this.concurrentCalls = [];
2294
- this.pollFunction = async () => {
2292
+ constructor(pollFunction, performWorkFunction, pollerOptions, logger) {
2293
+ this.performWorkFunction = async () => {
2295
2294
  };
2296
2295
  this.polling = false;
2296
+ this._tasksInProcess = 0;
2297
2297
  this.options = {
2298
2298
  pollInterval: 1e3,
2299
2299
  concurrency: 1
@@ -2306,78 +2306,48 @@ var Poller = class {
2306
2306
  if (this.polling) {
2307
2307
  throw new Error("Runner is already started");
2308
2308
  }
2309
- return this.poll();
2309
+ this._tasksInProcess = 0;
2310
+ this.polling = true;
2311
+ this.poll();
2310
2312
  };
2311
2313
  /**
2312
2314
  * Stops Polling for work
2313
2315
  */
2314
2316
  this.stopPolling = async () => {
2315
- await Promise.all(this.concurrentCalls.map((call) => call.stop()));
2316
2317
  this.polling = false;
2318
+ clearTimeout(this.timeoutHandler);
2319
+ };
2320
+ this.performWork = async (work) => {
2321
+ await this.performWorkFunction(work);
2322
+ this._tasksInProcess--;
2317
2323
  };
2318
2324
  this.poll = async () => {
2319
- if (!this.polling) {
2320
- this.polling = true;
2321
- for (let i = 0; i < this.options.concurrency; i++) {
2322
- this.concurrentCalls.push(this.singlePoll());
2323
- }
2325
+ while (this.isPolling) {
2326
+ const count = this.options.concurrency > this._tasksInProcess ? this.options.concurrency - this._tasksInProcess : this._tasksInProcess;
2327
+ const taskResult = await this.pollFunction(count);
2328
+ this._tasksInProcess = taskResult.length;
2329
+ taskResult.forEach(this.performWork);
2330
+ await new Promise(
2331
+ (r) => this.isPolling ? this.timeoutHandler = setTimeout(
2332
+ () => r(true),
2333
+ this.options.pollInterval
2334
+ ) : r(true)
2335
+ );
2324
2336
  }
2325
2337
  };
2326
- this.singlePoll = () => {
2327
- let poll = this.polling;
2328
- let timeout;
2329
- const pollingCall = async () => {
2330
- while (poll) {
2331
- await this.pollFunction();
2332
- await new Promise(
2333
- (r) => poll ? timeout = setTimeout(() => r(true), this.options.pollInterval) : r(true)
2334
- );
2335
- }
2336
- };
2337
- return {
2338
- promise: pollingCall(),
2339
- stop: () => new Promise((r) => {
2340
- clearTimeout(timeout);
2341
- poll = false;
2342
- this.logger.debug("stopping single poll call");
2343
- r(true);
2344
- })
2345
- };
2346
- };
2347
2338
  this.pollFunction = pollFunction;
2339
+ this.performWorkFunction = performWorkFunction;
2348
2340
  this.options = { ...this.options, ...pollerOptions };
2349
2341
  this.logger = logger || noopLogger;
2350
2342
  }
2351
2343
  get isPolling() {
2352
2344
  return this.polling;
2353
2345
  }
2354
- /**
2355
- * adds or shuts down concurrent calls based on the concurrency setting
2356
- * @param concurrency
2357
- */
2358
- updateConcurrency(concurrency) {
2359
- if (concurrency > 0 && concurrency !== this.options.concurrency) {
2360
- if (concurrency < this.options.concurrency) {
2361
- const result = this.concurrentCalls.splice(
2362
- 0,
2363
- this.options.concurrency - concurrency
2364
- );
2365
- result.forEach((call) => {
2366
- call.stop();
2367
- this.logger.debug("stopping some spawned calls");
2368
- });
2369
- } else {
2370
- for (let i = 0; i < concurrency - this.options.concurrency; i++) {
2371
- this.concurrentCalls.push(this.singlePoll());
2372
- this.logger.debug("spawning additional poll calls");
2373
- }
2374
- }
2375
- this.options.concurrency = concurrency;
2376
- }
2346
+ get tasksInProcess() {
2347
+ return this._tasksInProcess;
2377
2348
  }
2378
2349
  updateOptions(options) {
2379
2350
  const newOptions = { ...this.options, ...options };
2380
- this.updateConcurrency(newOptions.concurrency);
2381
2351
  this.options = newOptions;
2382
2352
  }
2383
2353
  };
@@ -2407,23 +2377,15 @@ var TaskRunner = class {
2407
2377
  this.stopPolling = async () => {
2408
2378
  await this.poller.stopPolling();
2409
2379
  };
2410
- this.pollAndExecute = async () => {
2411
- try {
2412
- const { workerID } = this.options;
2413
- const task = await this.taskResource.poll(
2414
- this.worker.taskDefName,
2415
- workerID,
2416
- this.worker.domain ?? this.options.domain
2417
- );
2418
- if (task && task.taskId) {
2419
- await this.executeTask(task);
2420
- } else {
2421
- this.logger.debug(`No tasks for ${this.worker.taskDefName}`);
2422
- }
2423
- } catch (unknownError) {
2424
- this.handleUnknownError(unknownError);
2425
- this.errorHandler(unknownError);
2426
- }
2380
+ this.batchPoll = async (count) => {
2381
+ const { workerID } = this.options;
2382
+ const task = await this.taskResource.batchPoll(
2383
+ this.worker.taskDefName,
2384
+ workerID,
2385
+ this.worker.domain ?? this.options.domain,
2386
+ count
2387
+ );
2388
+ return task;
2427
2389
  };
2428
2390
  this.updateTaskWithRetry = async (task, taskResult) => {
2429
2391
  let retryCount = 0;
@@ -2485,7 +2447,8 @@ var TaskRunner = class {
2485
2447
  this.options = options;
2486
2448
  this.errorHandler = errorHandler;
2487
2449
  this.poller = new Poller(
2488
- this.pollAndExecute,
2450
+ this.batchPoll,
2451
+ this.executeTask,
2489
2452
  { concurrency: options.concurrency, pollInterval: options.pollInterval },
2490
2453
  this.logger
2491
2454
  );