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;
});