如何防止 celery.backend_cleanup 在默认队列中执行
How to prevent celery.backend_cleanup from executing in default queue
我正在使用 python + flask + SQS,我也在使用 celery beat 来执行一些计划任务。
最近,我从一个默认的“celery”队列来执行我的所有任务,变成了为每个任务专门设置 queues/workers。这包括由 celery beat 安排的任务,这些任务现在都进入名为“scheduler”的队列。
在删除“celery”队列之前,我对其进行了监视以查看是否有任何任务会在该队列中结束。令我惊讶的是,他们做到了。
因为我没有工作人员从该队列中消费,所以我可以使用 AWS 控制台轻松检查堆积的消息。看到的是所有任务都是celery.backend_cleanup!!!
我无法从 celery 文档中找到如何防止这个 celery.backend_cleanup 被扔进我想摆脱的默认“celery”队列! docs on beat 不显示传递队列名称的选项。那么我该怎么做呢?
这就是我开始芹菜节拍的方式:
/venv/bin/celery -A backend.app.celery beat -l info --pidfile=
这就是我启动 worker 的方式
/venv/bin/celery -A backend.app.celery worker -l info -c 2 -Ofair -Q scheduler
请记住,我不想停止 backend_cleanup 执行,我只想让它进入我指定的任何队列。
在此先感谢您的帮助!
您可以在节拍任务设置中覆盖它。如果您愿意,也可以在此处将预定时间更改为 运行。
app.conf.beat_schedule = {
'backend_cleanup': {
'task': 'celery.backend_cleanup',
'options': {'queue': <name>,
'exchange': <name>,
'routing_key': <name>}
}
}
我正在使用 python + flask + SQS,我也在使用 celery beat 来执行一些计划任务。
最近,我从一个默认的“celery”队列来执行我的所有任务,变成了为每个任务专门设置 queues/workers。这包括由 celery beat 安排的任务,这些任务现在都进入名为“scheduler”的队列。
在删除“celery”队列之前,我对其进行了监视以查看是否有任何任务会在该队列中结束。令我惊讶的是,他们做到了。
因为我没有工作人员从该队列中消费,所以我可以使用 AWS 控制台轻松检查堆积的消息。看到的是所有任务都是celery.backend_cleanup!!!
我无法从 celery 文档中找到如何防止这个 celery.backend_cleanup 被扔进我想摆脱的默认“celery”队列! docs on beat 不显示传递队列名称的选项。那么我该怎么做呢?
这就是我开始芹菜节拍的方式:
/venv/bin/celery -A backend.app.celery beat -l info --pidfile=
这就是我启动 worker 的方式
/venv/bin/celery -A backend.app.celery worker -l info -c 2 -Ofair -Q scheduler
请记住,我不想停止 backend_cleanup 执行,我只想让它进入我指定的任何队列。
在此先感谢您的帮助!
您可以在节拍任务设置中覆盖它。如果您愿意,也可以在此处将预定时间更改为 运行。
app.conf.beat_schedule = {
'backend_cleanup': {
'task': 'celery.backend_cleanup',
'options': {'queue': <name>,
'exchange': <name>,
'routing_key': <name>}
}
}