正确处理NServiceBus超时

时间:2010-09-16 10:58:26

标签: nservicebus cqrs

NServiceBus提供了一种超时机制。来自nservicebus.com

  

基础上的RequestTimeout方法   class告诉NServiceBus发送一个   消息到另一个端点   永远为我们留出时间...有一个   NServiceBus附带的进程   称为Timeout Manager   提供了一个基本的实现   这个功能。

     

时间到了,Timeout Manager   将消息发送回传奇   导致其超时方法   用相同的状态对象调用   最初通过了。

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

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

1 个答案:

答案 0 :(得分:1)

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