【发布时间】:2014-04-09 01:20:05
【问题描述】:
我有一个场景,其中一些消息不依赖于其他消息的完成。所以要处理一组消息有一个先决条件,那就是应该先处理另一条消息。前置条件消息是一个长时间运行的过程,最多可能需要 30 分钟来处理。
我想要隐藏一条消息,让所有订阅者说 5 分钟,当我感觉到先决条件未完成时,然后在 5 分钟后再次可用,如果无法处理,则在接下来的 5 分钟内隐藏等等在。
我可以看到我可以使用会话和延迟可能是解决方案,但我不想那样做。因为这将需要维护存储以将延迟消息保存在非队列存储中。
另一种方法可能是我对消息进行峰值锁定,然后不理会它并让锁定过期,以便在适当的时候它会重新出现在队列中。
有更好的方法吗?
【问题讨论】:
-
为什么不将此消息插入另一个队列,并在处理完前置条件消息后将其出列?
-
这是你用的东西吗?
-
不使用 peek-lock,这是一个想法。
标签: azure servicebus azure-servicebus-queues