0

有没有办法阻止消费者吃低优先级的消息,直到所有高优先级的消息都被消费完?

我正在考虑检查低优先级消息处理程序中的队列状态,但这种解决方案似乎并不优雅并且可能很危险。

4

1 回答 1

1

也许为时已晚,但我们找到了一种可以很好地满足我们需求的方法。

基本上,高优先级作业在 DB 中写入锁。然后,当低优先级作业开始时,它首先检查锁:如果它在那里,我们用延迟标记重新调度作业。

作为最后一步,锁定作为高优先级作业的一部分被移除。然后,当低优先级的作业再次到达时,就可以进行处理了。通过这样做,我们能够管理三个具有不同优先级的队列。但是,我们的流程变得更加复杂。

于 2021-05-18T11:14:01.960 回答