[英]How to properly setup activities in a Masstransit statemachine 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.