Как правильно обрабатывать исключения параллелизма в EventStore? - PullRequest
2 голосов
/ 20 марта 2012

Используя JOliver EventStore 3.0 и получая команды из NServiceBus, как правильно обрабатывать исключения параллелизма? Если у меня более одного рабочего потока, это может быть обычным явлением.

Вариант 1

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

Вариант 2

Позвольте ему вернуться к NServiceBus и получить повторную попытку с опцией MsMqTransportConfig.MaxRetries из конфигурации.

Вариант 3

Что-то, о чем я не думаю?

1 Ответ

3 голосов
/ 21 марта 2012

Вы можете сравнить незафиксированные события с зафиксированными событиями и посмотреть, действительно ли они конфликтуют (в соответствии с вашими бизнес-правилами) - если нет конфликтов, вы можете разрешить сохранение событий, в противном случае перезапустить.

В общем, хотя я просто позволил ему сгенерировать и повторить попытку NServiceBus.

...