簡體   English   中英

中止 MassTransit Saga 的活動鏈

[英]Abort chain of activities for MassTransit Saga

我試圖弄清楚如何中止一系列活動,如果一個活動確定有問題,那么 Saga 應該被最終確定。

例如:

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

InitialSetup將根據從數據庫加載的一些信息配置 Saga。 讓它意識到缺少所需的數據,並且應該在運行StartUpdating活動之前完成 Saga。

我怎樣才能做到這一點?

您可以拋出異常,捕獲它,然后使用 catch 分支來完成 saga。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM