2

JOliver EventStore 3.0を使用し、NServiceBusからコマンドを受信する場合、同時実行の例外を処理する適切な方法は何ですか?複数のワーカースレッドがある場合、これはよくあることです。

オプション1

try
{
    // store the event
    ...
}
catch (ConcurrencyException)
{
    _bus.HandleCurrentMessageLater();
}

オプション2

NServiceBusにスローバックし、構成からMsMqTransportConfig.MaxRetriesオプションを使用して再試行します。

オプション3

私が考えていないことは?

4

1 に答える 1

3

コミットされていないイベントとコミットされたイベントを比較し、(ビジネス ルールに従って) 実際に競合しているかどうかを確認できます。競合がない場合は、イベントを永続化することを許可できます。そうでない場合は、再スローします。

一般的には、スローさせてNServiceBusに再試行させます。

于 2012-03-20T21:37:49.853 に答える