【问题标题】:How do I set consumer priority in celery - rabbitmq set up?如何在 celery 中设置消费者优先级 - rabbitmq 设置?
【发布时间】:2016-03-08 12:27:04
【问题描述】:

为了实现数据局部性,我需要在我的 celery 中设置消费者优先级 - rabbitmq 设置,即消费者从特定队列中选择具有偏好的任务。

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

如何使用此功能?

如果尚未实施,我该如何实施?

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

【问题讨论】:

    标签: python rabbitmq celery


    【解决方案1】:

    我也在 celery 问题页面上发布了这个问题。此功能已包含在开发版中:

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

    在消费者端,您可以在队列中定义x-priority 参数以进行消费。 在下面的示例中,消费者从优先级为 0 的 celery 队列和优先级为 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}),
    )
    

    【讨论】:

    • 我对 Celery 不太熟悉。你能给出一个更完整的例子吗?我应该在哪里添加这段代码?目前我正在访问我们的 RMQ 队列,例如task_run_grouping = app.signature('test.run_realtime_grouping', (context,)).set(queue='my_rabbitmq_queue')
    猜你喜欢
    • 1970-01-01
    • 2015-09-04
    • 2018-01-29
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多