微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何防止 celery.backend_cleanup 在默认队列中执行

如何解决如何防止 celery.backend_cleanup 在默认队列中执行

我正在使用 python + flask + SQS 并且我也在使用 celery beat 来执行一些计划任务。

最近,我从拥有一个认的“celery”队列来执行我的所有任务,变成了为每个任务配备专用队列/工作线程。这包括由 celery beat 调度的任务,它们现在都进入名为“scheduler”的队列。

删除“celery”队列之前,我监视它以查看是否有任何任务会在该队列中结束。令我惊讶的是,他们做到了。

由于我没有从该队列中消费的工作人员,我可以使用 AWS 控制台轻松检查堆积的消息。看到的是所有任务都是celery.backend_cleanup!!!

我无法从 celery 文档中找到我如何防止这个 celery.backend_cleanup 被扔到这个我想摆脱的认“celery”队列中!并且 docs on beat 不显示传递队列名称的选项。那么我该怎么做呢?

这就是我开始 celery beat 的方式:

/venv/bin/celery -A backend.app.celery beat -l info --pidfile=

这就是我开始工作的方式

/venv/bin/celery -A backend.app.celery worker -l info -c 2 -Ofair -Q scheduler

请记住,我不想阻止 backend_cleanup 的执行,我只想让它进入我指定的任何队列。

提前感谢您的帮助!

解决方法

您可以在节拍任务设置中覆盖它。如果您愿意,您也可以在此处更改计划运行时间。

def data_city():
    name_city = city.get()
    cursor.execute('SELECT * FROM Info_Squadra WHERE Name_city=?',(name_city,))
    results = cursor.fetchone()
    return results

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。