elsa 运行变更

除了提交变更计划以供异步执行,您还可以使用 IAlterationRunner 服务立即应用变更。例如:

var alterations = new List<IAlteration>
{
    new ModifyVariable("MyVariable", "MyValue")
},

var workflowInstanceIds = new[] { "26cf02e60d4a4be7b99a8588b7ac3bb9" };
var runner = serviceProvider.GetRequiredService<IAlterationRunner>();
var results = await runner.RunAsync(plan, cancellationToken);

当立即执行变更计划时,变更会被同步应用,并返回结果。您需要手动调度受影响的工作流实例以继续执行。使用 IAlteredWorkflowDispatcher

var dispatcher = serviceProvider.GetRequiredService<IAlteredWorkflowDispatcher>();
await dispatcher.DispatchAsync(results, cancellationToken);

这将通知工作流引擎拾取已变更的工作流实例并执行它们。

在本文档中