elsa 工作流调度器 Workflow Dispatcher

工作流调度器是一项服务,负责分发执行工作流的请求。它由 IWorkflowDispatcher 接口表示。

当分发执行工作流的请求时,消费者会接收该请求并异步地在后台执行工作流。这样,调用者无需等待工作流完成即可继续执行。


配置工作流调度器

开箱即用,Elsa 提供了 IWorkflowDispatcher 接口的两个实现:

  • BackgroundWorkflowDispatcher:一个简单的实现,将指定的工作流执行请求排队到非持久性后台工作者上。
  • MassTransitWorkflowDispatcher:使用 MassTransit 来分发指定的请求到队列中以执行工作流的实现。

后台工作流调度器

这是默认实现,当没有注册其他实现时使用。

MassTransit 工作流调度器

此实现利用 MassTransit 将指定的请求分发到队列中以执行工作流。

要使用此实现,首先需要配置 MassTransit。更多详情见 MassTransit 配置 。接下来,你需要告诉工作流运行时使用 MassTransit 工作流调度器:

services.AddElsa(elsa =>
{
    elsa.UseWorkflowRuntime(runtime =>
    {
        runtime.UseMassTransitDispatcher();
    });
});

MassTransit 的工作流调度器实现可以通过 MassTransitWorkflowDispatcherOptions 类进一步配置:

services.Configure<MassTransitWorkflowDispatcherOptions>(options =>
{
    // 并发处理的消息数。
    options.ConcurrentMessageLimit = 32;
});
在本文档中