0

NServiceBus 提供了超时机制。从nservicebus.com

基类上的 RequestTimeout 方法告诉 NServiceBus 将消息发送到另一个端点,这将为我们持久地保留时间...... NServiceBus 附带一个称为 Timeout Manager 的过程,它提供了此功能的基本实现。

当时间到时,Timeout Manager 会向 saga 发送一条消息,导致使用最初传递的相同状态对象调用其 Timeout 方法。

正如我所看到的,即使消息已传递给接收者,也有可能触发超时(例如,回复卡在某处)。

我如何设计我的应用程序,以使我的应用程序无论消息是否发送到接收者都能正确运行。

4

1 回答 1

1

如果 Client 向 Server 发送消息,然后请求 Timeout,则将存储请求的状态。如果客户端在服务器回复之前收到超时消息,那么您可以将超时返回的状态与当前状态进行比较,看看服务器没有回复并决定做什么。如果请求不再有效,您可能会忽略回复。如果是这种情况,您可能需要查看服务器消息的“TimeToBeReceived”属性。它将在指定时间内丢弃它无法接收的消息。

于 2010-09-17T15:45:47.023 回答