RabbitMQ:具有更改优先级的优先级队列

时间:2019-05-26 16:53:17

标签: rabbitmq priority-queue

我想实现一个优先级工作队列,其中一组消息的优先级一旦进入队列就可以更改。由于这是一个处理时间可变的工作队列,因此消息不是使用循环算法分配的,而是在资源空闲(使用每个用户的限制)时从队列中拉出的。

我提出了两个实施思路:

  1. 使用RabbitMQ的优先级队列,当请求更改优先级时,从队列中读取具有此优先级的消息,然后以不同的优先级重新发送它们。 (鉴于O(n)的复杂性,我不确定这是否是一个好方法。)
  2. 为每组消息使用几个名称不同的队列,并使用一个单独的队列将当前优先级列表(队列名称的有序列表)传达给工作人员。 (使用这种方法,我不确定如何使优先级列表“保持”,以便新加入的工作人员知道当前的优先级列表是什么。)

您将如何实施? RabbitMQ是否适合该用例?

0 个答案:

没有答案