elsa 工作流

工作流是一系列活动,可以以多种方式执行。在 Elsa 中,工作流由 Workflow 类的一个实例表示,并且它本身也是一个活动。确切地说,它是一个复合活动,并公开了一个 Root 属性,可用于定义工作流的根活动。Root 属性是类型 IActivity ,这是所有活动的基础接口。

工作流创建

以下示例展示了如何实例化一个 Workflow 对象并将其 Root 属性设置为一个 Sequence 活动:

var workflow = new Workflow
{
    Root = new Sequence
    {
        Activities =
        {
            new WriteLine("你好,世界!"),
            new WriteLine("再见了,残酷的世界!")
        }
    }
};

工作流执行

当你有一个 Workflow 对象的实例时,你可以使用 WorkflowRunner 类来执行它。WorkflowRunner 类负责执行工作流,是所有工作流执行的入口点。

以下是一个执行工作流的示例:

var workflowRunner = services.GetRequiredService<IWorkflowRunner>(); // 或者在构造函数中注入。
await workflowRunner.RunAsync(workflow);

工作流定义

工作流可以从代码或使用设计器创建。当使用设计器创建时,工作流定义以 JSON 形式存储,并用于在运行时重建实际的 Workflow 对象。

工作流实例

工作流实例是当前正在执行的工作流的实例,由 WorkflowState 类的一个实例表示。当工作流被执行时,会创建一个工作流实例。换句话说,工作流实例是工作流的运行时表示

工作流执行上下文

工作流执行上下文是在工作流执行过程中传递的数据结构。它包含工作流实例、当前活动、当前输入和输出等信息。

在本文档中