我有一个场景,其中一些消息不依赖于其他消息的完成。所以要处理一组消息有一个先决条件是先处理另一条消息。前置条件消息是一个长时间运行的过程,最多可能需要 30 分钟来处理。
我想要隐藏一条消息,让所有订阅者说 5 分钟,当我感觉到先决条件未完成时,然后在 5 分钟后再次可用,如果无法处理,则在接下来的 5 分钟内隐藏等等。
我可以看到我可以使用会话并且延迟可能是解决方案,但我不想那样做。因为这将需要维护存储以将延迟消息保存在非队列存储中。
另一种方法可能是我对消息进行峰值锁定,然后不理会它并让锁过期,以便在适当的时候它会重新出现在队列中。
有没有更好的方法来做到这一点?