我正在 NServiceBus 中创建一个 SAGA。这个传奇正在处理一些必须转换然后验证并最终导入的字符串。这三个动作是独立的服务。我希望这些操作作为 NServiceBus 中的单独处理程序。我正在使用 NServiceBus 中的请求/回复功能。像这样:
Bus.Send<TransformRequest>("Backend", m =>
{
m.string = string;
m.MessageId = messageId;
})
.Register(i =>
{
Console.WriteLine("transform finished")
});
transformationHandler 如下。
public void Handle(TransformRequest message)
{
var transformationResult = _transformationService.Transform(message.string);
var response = new TransformResponse()
{
string= transformationResult,
messageId = message.messageId,
};
Bus.Reply(response);
}
我的问题如下。当请求发送到 transformationHandler 时。一条消息被发送到消息队列。然后假设,服务器崩溃。服务器重新启动,服务器获取 TransformationRequest,它是否工作并想要回复 Saga,但如何?传奇不再存在,无法处理.Register。我该如何处理这个问题?
谢谢你。