【问题标题】:django celery - running two queues in a single workerdjango celery - 在一个工作人员中运行两个队列
【发布时间】:2013-02-18 05:08:25
【问题描述】:

我正在使用 celery 来满足我的项目需求。 目前我已经创建了一个队列'HighPriorityQueue'以及默认队列,即有 将是一个工人和两个队列。

将有不同的任务排队到这两个队列中。我需要处理 'HighPriorityQueue' 每当有任务在其中排队时。

我怀疑 celery 将如何处理这个队列?芹菜会并行处理队列吗? 或者我是否可以这样做,如果某些任务在“HighPriorityQueue”中排队,则应该立即处理它,而不管已经在队列中排队的作业 默认一个?

请提前建议和感谢。

【问题讨论】:

    标签: django celery


    【解决方案1】:

    哇,老问题...

    Celery 无法为一组队列设置优先级。您最好的选择是拥有一个仅使用HighPriortyQueue 的高优先级工作程序池和一个使用default+HighPriorityQueue 或仅使用“默认”的默认工作程序池。

    一些消息代理 (RabbitMQ for sure) 允许您在队列中设置优先级,基本上将重要消息推送到顶部的队列中以首先被使用,然后您的一个 Celery 工作人员可以愚蠢地使用这些消息并基本上完成您的工作想。但是,在队列级别执行此操作会带来自己的挑战/陷阱。

    【讨论】:

      猜你喜欢
      • 2020-01-28
      • 2018-07-18
      • 2014-05-29
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多