【发布时间】:2021-09-09 10:31:18
【问题描述】:
我尝试在 MassTransit 7.2.2 中使用 saga。 我的传奇中有下一个事件:
During(Submitted,
When(OrderAccepted)
.Then(x =>
{
logger.LogInformation($"Order {x.Instance.OrderId} accepted");
throw new Exception("TEST");
})
.Catch<Exception>(x =>
{
x.If(
context => context.Data.OrderId == 1002,
activityBinder =>
activityBinder
.Then(y =>
{
logger.LogInformation($"Order {y.Instance.OrderId} catch exception and pass to Rejected");
})
.TransitionTo(Rejected)
);
return x;
})
.ThenAsync(c =>
{
return TakeProductCommand(c);
})
.TransitionTo(Accepted));
在上面的代码中,我想捕获在处理当前事件期间可能引发的任何异常,并将 saga 置于 Rejected 状态。但它并没有像我想象的那样工作。我根本没有进入 Catch 处理程序。
我做错了什么?
【问题讨论】:
标签: masstransit saga