2
私は佐賀を作成し、アクティビティの実行中に例外を処理する方法を知りました。理想的には、私は場合によってはそのサガインスタンスを殺すために、すぐににしたいと思います。例外時の佐賀のファイナライズ
私はこのスレッドにつまずいた:Understanding "Finalize" in MassTransit、私の現在のアプローチは少し異なります。で私はSagaFaultedEvent
とFaulted
状態への遷移を公開:
.Catch<Exception>(e => e
.Publish(context => (ISagaFaultedEvent)new SagaFaultedEvent(context.Instance.Id))
.TransitionTo(Faulted)));
次にこれが答えに、しかし、動作するように思われる問題をログに記録し、
During(Faulted,
When(SagaFaulted)
.Activity(x => x.OfInstanceType<LogFaultedSagaActivity>())
.Finalize());
インスタンスを完了することにより、このイベントを処理します上記スレッドには、にサガを直接ファイナライズする必要がありますが、にはFinalize()
がありません。EventActivityBinder
にアクセスすることはできません。
ここに何かが見つからない(おそらく)? Catch()
で佐賀を直接ファイナライズすることはできますか?
Chrisさん、ありがとうございました! – Slowacki