elsa 变更计划
变更计划代表了一组可以应用于工作流实例或一系列工作流实例的更改。
创建变更计划
要创建一个变更计划,实例化一个新的 NewAlterationPlan
类。例如:
var plan = new NewAlterationPlan
{
Alterations = new List<IAlteration>
{
new ModifyVariable("MyVariable", "MyValue")
},
WorkflowInstanceIds = new[] { "26cf02e60d4a4be7b99a8588b7ac3bb9" }
};
提交变更计划
要提交变更计划,请使用 IAlterationPlanScheduler
服务。例如:
var scheduler = serviceProvider.GetRequiredService<IAlterationPlanScheduler>();
var planId = await scheduler.SubmitAsync(plan, cancellationToken);
当计划被提交时,针对每个工作流实例会创建一个变更任务,以应用每个变更。
变更计划在后台异步执行。要监控变更计划的执行情况,请使用 IAlterationPlanStore
服务。例如:
var store = serviceProvider.GetRequiredService<IAlterationPlanStore>();
var plan = await _alterationPlanStore.FindAsync(new AlterationPlanFilter { Id = planId }, cancellationToken);
要获取作为计划一部分创建的变更任务,请使用 IAlterationJobStore
服务。例如:
var store = serviceProvider.GetRequiredService<IAlterationJobStore>();
var jobs = (await _alterationJobStore.FindManyAsync(new AlterationJobFilter { PlanId = planId }, cancellationToken)).ToList();