跳到主要内容

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

ParameterType
rxdbRxDB
registryTaskRegistry
tabIdstring
atomicTransition?AtomicTransition

Returns

WorkflowExecutor

Methods

cancelWorkflow()

cancelWorkflow(workflowRunId): Promise<void>;

Defined in: packages/rxdb-plugin-trigger/src/core/workflow-executor.ts:108

Parameters

ParameterType
workflowRunIdstring

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

ParameterType
workflowRunIdstring

Returns

Promise<TriggerWorkflowNodeRun[]>


getWorkflowRun()

getWorkflowRun(workflowRunId): Promise<TriggerWorkflowRun | undefined>;

Defined in: packages/rxdb-plugin-trigger/src/core/workflow-executor.ts:159

Parameters

ParameterType
workflowRunIdstring

Returns

Promise<TriggerWorkflowRun | undefined>


startWorkflow()

startWorkflow(workflow, payload?): Promise<TriggerWorkflowRun>;

Defined in: packages/rxdb-plugin-trigger/src/core/workflow-executor.ts:52

Parameters

ParameterType
workflowWorkflowJSON
payload?unknown

Returns

Promise<TriggerWorkflowRun>