1

我有一个现有的应用程序,它通过排队传输将消息从一个进程发送到另一个进程。我想通过延迟处理消息来改变消息的处理方式,并让队列更多地充当优先级队列,其中应该首先在队列顶部处理消息。

IE:

在时间 0,消息 A 以 15 分钟的延迟发送到队列。5 分钟后,消息 B 发送到队列,延迟 10 分钟。处理队列的服务随后崩溃并且在 15 分钟内没有重新启动。当队列再次开始处理时,消息 B 将在顶部,然后是消息 A。

在 C# / MSMQ / .NET 生态系统中有这样的东西吗?

4

1 回答 1

1

如果您在 Windows Azure 上进行云编程,有一种方法可以解决这个问题。只需指定visibilitytimeout要放置的消息。

来自http://msdn.microsoft.com/en-us/library/windowsazure/dd179346.aspx

可见性超时=

可选的。如果指定,则必须使用 2011-08-18 或更高版本的 x-ms-version 发出请求。如果未指定,则默认值为 0。指定新的可见性超时值,以秒为单位,相对于服务器时间。新值必须大于等于 0,且不能大于 7 天。消息的可见性超时不能设置为晚于到期时间的值。visibilitytimeout 应设置为小于生存时间值的值。

可选的可见性超时指定消息不可见的时间。超时到期后,消息将变为可见。如果未指定可见性超时,则使用默认值 0。

于 2012-05-31T14:16:21.510 回答