WorkflowExecutor
Defined in: packages/rxdb-plugin-trigger/src/core/workflow-executor.ts:37
WorkflowExecutor - 工作流执行器
负责执行基于 DAG 的工作流任务图。
核心概念:
- 工作流由节点(nodes)和边(edges)组成的有向无环图(DAG)
- 节点类型:task(任务)、delay(延迟)、condition(条件)、fan-out(并行)、fan-in(汇聚)
- 通过 pendingUpstreamCount 实现依赖计数,只有所有上游节点完成后才执行
节点状态机:
- PENDING → RUNNING → COMPLETED / FAILED
- 支持重试(attempt < maxAttempts 时回到 PENDING)
- 失败时根据边类型(success/failure)决定下游传播
并发控制:
- maxFanOutConcurrency 控制每批并发执行的节点数(默认 5)
- 使用 CAS 原子操作获取节点执行锁
完成判断:
- 当所有节点都达到终态(COMPLETED/FAILED/SKIPPED/CANCELED)时工作流结束
- 无出边的节点为终态节点,其 output 作为工作流 output
- 任意节点失败则工作流状态为 FAILED
Constructors
Constructor
new WorkflowExecutor(
rxdb,
registry,
tabId,
atomicTransition?): WorkflowExecutor;
Defined in: packages/rxdb-plugin-trigger/src/core/workflow-executor.ts:45
Parameters
| Parameter | Type |
|---|---|
rxdb | RxDB |
registry | TaskRegistry |
tabId | string |
atomicTransition? | AtomicTransition |
Returns
WorkflowExecutor
Methods
cancelWorkflow()
cancelWorkflow(workflowRunId): Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/core/workflow-executor.ts:108
Parameters
| Parameter | Type |
|---|---|
workflowRunId | string |
Returns
Promise<void>
destroy()
destroy(): Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/core/workflow-executor.ts:99
Returns
Promise<void>
getNodeRuns()
getNodeRuns(workflowRunId): Promise<TriggerWorkflowNodeRun[]>;
Defined in: packages/rxdb-plugin-trigger/src/core/workflow-executor.ts:177
Parameters
| Parameter | Type |
|---|---|
workflowRunId | string |
Returns
Promise<TriggerWorkflowNodeRun[]>
getWorkflowRun()
getWorkflowRun(workflowRunId): Promise<TriggerWorkflowRun | undefined>;
Defined in: packages/rxdb-plugin-trigger/src/core/workflow-executor.ts:159
Parameters
| Parameter | Type |
|---|---|
workflowRunId | string |
Returns
Promise<TriggerWorkflowRun | undefined>
startWorkflow()
startWorkflow(workflow, payload?): Promise<TriggerWorkflowRun>;
Defined in: packages/rxdb-plugin-trigger/src/core/workflow-executor.ts:52
Parameters
| Parameter | Type |
|---|---|
workflow | WorkflowJSON |
payload? | unknown |
Returns
Promise<TriggerWorkflowRun>