Я создаю SAGA в NServiceBus. Эта сага обрабатывает некоторую строку, которую необходимо преобразовать, затем проверить и, наконец, импортировать. Эти три действия являются отдельными услугами. Я хочу, чтобы действия были отдельными обработчиками в NServiceBus. Я использую функцию запроса/ответа в NServiceBus. Нравится:
Bus.Send<TransformRequest>("Backend", m =>
{
m.string = string;
m.MessageId = messageId;
})
.Register(i =>
{
Console.WriteLine("transform finished")
});
Обработчик трансформации выглядит следующим образом.
public void Handle(TransformRequest message)
{
var transformationResult = _transformationService.Transform(message.string);
var response = new TransformResponse()
{
string= transformationResult,
messageId = message.messageId,
};
Bus.Reply(response);
}
Мой вопрос заключается в следующем. Когда запрос отправляется в transformHandler. Сообщение отправляется в очередь сообщений. Затем гипотетически сервер падает. Сервер перезагружается, сервер подхватывает TransformationRequest, он работает и хочет сделать ответ Саге, но как? Сага больше не жива и не может справиться с .Register. Как мне справиться с этой проблемой?
Спасибо.