为了实现数据的本地化,我需要在我的芹菜中建立消费者优先级 - rabbitmq设置,即消费者从某个特定队列中挑选任务。
我发现Rabbitmq支持消费者优先权: https://www.rabbitmq.com/consumer-priority.html
我该如何使用此功能?
如果还没有实现,我该如何实现呢?
在rabbitmq示例代码中(链接中提供),x-priority
参数已经提供给basicConsume。如何在芹菜代码中实现这一点?
答案 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}),
)