我知道我可以使用TimeToBeReceived属性在NServiceBus中实现一条消息 但是,nservicebus有一个基础设施来执行事件处理程序 在TimeToBeReceived属性中配置的时间后没有收到发送的消息?
答案 0 :(得分:4)
您可以尝试这样做。 让您发送消息的目标发回某种响应。 然后,不要只是发送消息,而是使用传奇来执行此操作。 让saga请求在TimeToBeReceived的同一时间内超时。 在响应处理程序方法中,让saga标记本身完成。 然后,你的传奇中的超时方法就是你正在寻找的回调。
请记住,您需要运行TimeoutManager。
对于安德烈亚斯的简短回答,这是一个很长的答案:)
答案 1 :(得分:0)
底层队列系统(MSMQ,Azure队列等)负责丢弃“旧”的消息,这使得无法检测到何时发生这种情况。
简短回答:
没有
希望这有帮助!