【问题标题】:Abort chain of activities for MassTransit Saga中止 MassTransit Saga 的活动链
【发布时间】:2021-05-06 19:52:00
【问题描述】:

我正试图弄清楚如何中止一系列活动,如果一个活动确定有问题,并且应该完成 Saga。

例如:

Initially(
    When(UpdateRequested)
        .Activity(x => x.OfType<InitialSetup>())
        .Activity(x => x.OfType<StartUpdating>())
        .TransitionTo(Updating)

InitialSetup 将根据从数据库加载的一些信息配置 Saga。让它意识到缺少所需的数据,并且应该在运行 StartUpdating 活动之前完成 Saga。

我怎样才能做到这一点?

【问题讨论】:

    标签: masstransit automatonymous


    【解决方案1】:

    您可以抛出异常,捕获它,然后使用 catch 分支来完成 saga。

    Initially(
        When(UpdateRequested)
            .Activity(x => x.OfType<InitialSetup>()) // activity throws
            .Activity(x => x.OfType<StartUpdating>())
            .TransitionTo(Updating)
            .Catch<MissingDataException>(x => x.Finalize())
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      相关资源
      最近更新 更多