【发布时间】:2021-01-12 18:26:31
【问题描述】:
使用 MassTransit 中的 Sagas,我可以添加一个持久性提供程序,以便它们的状态保持不变。但是,我可以以某种方式再次删除特定传奇的状态吗?如果这是自动完成的,什么时候完成?
【问题讨论】:
标签: c# masstransit
使用 MassTransit 中的 Sagas,我可以添加一个持久性提供程序,以便它们的状态保持不变。但是,我可以以某种方式再次删除特定传奇的状态吗?如果这是自动完成的,什么时候完成?
【问题讨论】:
标签: c# masstransit
当你完成 saga (finalize) 并调用 SetCompletedWhenFinalized() 时,Saga 会被自动删除;
DuringAny(
When(OrderCompleted)
.Finalize());
SetCompletedWhenFinalized();
或使用自定义完整定义
DuringAny(
When(OrderCompleted)
.TransitionTo(Completed));
SetCompleted(async instance =>
{
State<TInstance> currentState = await this.GetState(instance);
return Completed.Equals(currentState);
});
...
public State Completed { get; private set; }
【讨论】: