Azure 队列消息优先级



我在 Azure 存储中有一个队列,例如名为"消息"。每隔 1 小时,一些服务就会向此队列推送一些应该更新数据的消息。但是,在某些情况下,我也会从另一个地方推送到此队列消息,我希望立即处理此消息,并且我无法为此消息设置优先级。

这个问题的最佳解决方案是什么?我可以使用两个不同的队列("消息"和"消息优先级")还是这是一种糟糕的方法?

正确的方法是使用多个队列 - 一个"正常优先级"和一个"高优先级"队列。 我们实现的是单个工作线程中的多个队列读取器线程 - 每个线程首先检查高优先级队列,如果为空,则在正常队列中查找。这样,高优先级消息将由第一个可用线程处理(几乎立即),并且无论消息来自何处,都会运行相同的代码。它还避免了让读取器在单个队列中不断查找并且由于很少有消息而不得不退缩。

最新更新