10

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

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

4

1 回答 1

9

正确的方法是使用多个队列——“正常优先级”和“高优先级”队列。我们实现的是单个工作角色中的多个队列读取器线程 - 每个线程首先检查高优先级队列,如果它为空,则查看普通队列。这样,高优先级消息将由第一个可用线程(几乎立即)处理,并且无论消息来自何处,都将运行相同的代码。它还省去了让阅读器连续查看单个队列而不得不退出的情况,因为很少有消息。

于 2014-01-20T10:32:48.670 回答