如何在芹菜中设置消费者优先权 - rabbitmq设置?

时间:2016-03-08 12:27:05

标签: python rabbitmq celery

为了实现数据的本地化,我需要在我的芹菜中建立消费者优先级 - rabbitmq设置,即消费者从某个特定队列中挑选任务。

我发现Rabbitmq支持消费者优先权: https://www.rabbitmq.com/consumer-priority.html

我该如何使用此功能?

如果还没有实现,我该如何实现呢?

在rabbitmq示例代码中(链接中提供),x-priority参数已经提供给basicConsume。如何在芹菜代码中实现这一点?

1 个答案:

答案 0 :(得分:4)

我也在芹菜问题页面上发布了这个问题。此功能已纳入开发版本:

https://github.com/celery/celery/issues/3098

在消费者端,您可以在要使用的队列中定义x-priority参数。 在下面的示例中,消费者从优先级为0的芹菜队列和优先级为10的hipri中获取任务。

示例:

CELERY_QUEUES = (
    Queue('celery', Exchange('celery', type='direct'), routing_key='celery',
          consumer_arguments={'x-priority': 0}),
    Queue('hipri', Exchange('hipri', type='direct'), routing_key='hipri',
          consumer_arguments={'x-priority': 10}),
)