作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 5 个名为 1-5 的工作人员和两个队列 A 和 B,我需要为工作人员 1 和 2 分配队列 A,为 B 分配专用的 3,4,5,还需要为工作人员 1 和 2 分配当 A 为空或 1,2 空闲时,队列 B 中的任务。
我需要使用 Django 应用程序中的 RabbitMQ brocker 在我的 Celery 任务中进行配置。
你能指定如何根据上述逻辑分配队列特定任务并运行worker吗?
谢谢。
最佳答案
所以,对于 celery ,这就是您所需要的:
celery multi start 5 -A conf -l info -Q:1-2 queueA -Q:3-5 queueB --pidfile="%n.pid"
要在 django 中分配队列,您有不止一种方法:(我的设置在conf中)通过设置中的任务应用程序/文件夹:
app.conf.task_routes = {
'appA.tasks.*': {'queue': 'queueA'},
'appB.tasks.*': {'queue': 'queueB'},
}
直接使用:
myTask.apply_async((2, 2), queue='queueA', countdown=10)
也许还有其他方法,但对我来说,我使用这个方法:
app.conf.task_default_queue = 'queueA'
我使用 app.conf.task_routes
进行特定用途,例如 cron
关于Django Celery 多个工作线程和多个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44138781/
我是一名优秀的程序员,十分优秀!