NServiceBus提供了一种超时机制。来自nservicebus.com:
基础上的RequestTimeout方法 class告诉NServiceBus发送一个 消息到另一个端点 永远为我们留出时间...有一个 NServiceBus附带的进程 称为Timeout Manager 提供了一个基本的实现 这个功能。
时间到了,Timeout Manager 将消息发送回传奇 导致其超时方法 用相同的状态对象调用 最初通过了。
正如我所看到的,即使消息已经发送到接收方,也有可能触发超时(例如,回复卡在了某处)。
如何设计我的应用程序,使我的应用程序能够正常运行,无论消息是否发送到接收方。
答案 0 :(得分:1)
如果客户端向服务器发送消息然后请求超时,则将存储请求的状态。如果客户端在从服务器回复之前收到超时消息,则可以将超时返回的状态与当前状态进行比较,并查看服务器未回复并决定要执行的操作。如果请求不再有效,您可以忽略该回复。如果是这种情况,您可能需要查看Server消息的“TimeToBeReceived”属性。它将丢弃在指定时间内无法接收的消息。