暂时将消息隐藏在azure服务总线队列/主题中

时间:2014-03-06 12:02:10

标签: azure servicebus azure-servicebus-queues

我有一个场景,其中一些消息不依赖于完成另一条消息。因此,处理一组消息的前提条件是应首先处理另一条消息。前提条件消息是一个长时间运行的过程,最多可能需要30分钟才能处理。

我想要隐藏一条消息,当我感觉前提条件未完成时,让所有订阅者说5分钟,然后在5分钟后再次可用,如果无法处理,则隐藏在接下来的5分钟内上。

我可以看到我可以使用会话并推迟可能是解决方案,但我不想这样做。因为这将需要维护存储以将延迟的消息保持在非队列存储中。

另一种方法是我对邮件进行峰值锁定,然后不管它,让锁定到期,以便在适当的时候它会重新出现在队列中。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

有几种方法可以实现这一目标。当您收到消息时可以选择推迟。这将从活动队列中删除它,您将不得不稍后使用MessageId专门请求此消息。对于您的场景,可以使用预定消息(参见下文),但这将涉及接收消息,然后使用以下内容安排另一个消息: http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.servicebus.messaging.brokeredmessage.scheduledenqueuetimeutc.aspx