将消息放入msmq,消息过期超时

Yau*_*sau 5 c# msmq

如果有一种开箱即用的方式将消息放入具有定义的到期时间的msmq中.到期时我指的是以下情况:

  • 消息发送者经常将消息发送到队列中
message 1 published at 1:00
message 2 published at 1:02
message 3 published at 1:04
Run Code Online (Sandbox Code Playgroud)
  • 消息接收者从队列中获取消息并运行时间过程

消息1在1:00收到并在1:05处理

  • 通过应用程序逻辑,它可以处理在特定时间范围内不长的消息

我们分析不超过1分钟的进程消息,因此我希望消息2将从队列中消失

问题:

  • 我可以通过开箱即用的功能存档吗?
  • 如果不?这样做的最佳做法是什么?
  • msmq原则上是针对这个用例的正确技术吗?哪一个更符合要求?

Mau*_*tti 6

Message类有一个TimeToBeReceived属性(请参阅MSDN).我认为它应该符合你的要求.

此外,在我看来,您的系统无法以与生成消息相同的速度消费消息.在不知道有关系统的更多细节的情况下很难分辨,但是可能值得探索并行使用消息的可能性(如果您还没有这样做).