如果有一种开箱即用的方式将消息放入msmq并且定义了到期时间。 到期时我指的是以下情况:
message 1 published at 1:00 message 2 published at 1:02 message 3 published at 1:04
消息1在1:00收到并在1:05
处理
我们将超过1分钟的处理消息称为此消息 要求我希望消息2从队列中消失
问题:
答案 0 :(得分:6)
Message
类具有TimeToBeReceived
属性(请参阅MSDN)。我认为它应该符合你的要求。
此外,在我看来,您的系统无法以与生成消息相同的速度使用消息。 在不了解系统的更多细节的情况下很难分辨,但是可能值得探索并行使用消息的可能性(如果你还没有这样做的话)。
答案 1 :(得分:0)
如果您可以访问Producer / Consumer的源代码,则可以共享队列但在内存中并使用LINQ过滤预期时间范围内的消息并处理它们
答案 2 :(得分:0)
System.Messaging.Message
类具有TimeToBeReceived
的属性,如果超时,将导致消息被忽略(或发布到坏信队列)。
唯一的问题是您必须确保客户端的时间与服务器端的时间同步。