【问题标题】:Django Celery - running scheduled tasksDjango Celery - 运行计划任务
【发布时间】:2014-03-17 09:42:21
【问题描述】:

经过几个小时没有结果,我真的需要帮助。

我在我的 Django 应用程序上配置了 Django-Celery,并且能够运行计划任务:

python manage.py celeryd -E -B -l INFO

现在是制作时间,我的痛苦就从这里开始。 我将celeryd 配置为守护进程。它似乎工作,但计划任务不会运行。

所以我在CELERYD_OPTS 中添加了-B。 我的任务现在按计划运行,但我的日志中有这样无聊的行:

[2014-02-17 22:37:30,738: DEBUG/MainProcess] beat: Waking up in 5.00 seconds.

我只想从我的日志中删除这些行!我什至不明白这是什么意思。

所以我配置了celerybeat 守护程序,认为这将是生产环境的更清洁和建议解决方案。

不幸的是,当我统计 celerybeat 守护进程时,它会创建一个日志和一个 pid 文件,但计划任务不会运行。

[2014-02-17 19:15:41,919: INFO/MainProcess] beat: Starting...
[2014-02-17 19:15:41,921: INFO/MainProcess] Writing entries...
[2014-02-17 19:15:42,072: DEBUG/MainProcess] Current schedule:
<ModelEntry: celery.backend_cleanup celery.backend_cleanup(*[], **{}) {4}>
<ModelEntry: MyApp.tasks.test_task MyApp.tasks.test_task(*[], **{}) {4}>
[2014-02-17 19:15:42,187: DEBUG/MainProcess] beat: Ticking with max interval->5.00 seconds
[2014-02-17 19:15:42,206: DEBUG/MainProcess] Start from server, version: 0.9, properties: {u'information': u'Licensed under the MPL.  See http://www.rabbitmq.com/', u'product': u'RabbitMQ', u'copyright': u'Copyright (C) 2007-2011 VMware, Inc.', u'capabilities': {u'exchange_exchange_bindings': True, u'consumer_cancel_notify': True, u'publisher_confirms': True, u'basic.nack': True}, u'platform': u'Erlang/OTP', u'version': u'2.7.1'}, mechanisms: [u'PLAIN', u'AMQPLAIN'], locales: [u'en_US']
[2014-02-17 19:15:42,207: DEBUG/MainProcess] Open OK!
[2014-02-17 19:15:42,257: INFO/MainProcess] Scheduler: Sending due task MyApp.tasks.test_task (MyApp.tasks.test_task)

仅此而已。

据我了解,一切正常(包括 RabbitMQ,其日志干净且没有错误)

我只需要避免在我的日志文件中出现冗长的无用行。 清洁快速的解决方案。

有人可以帮忙吗? 谢谢!!

【问题讨论】:

  • 使用loglevel=INFO时应该注意包含DEBUG日志,所以我想一定是其他东西设置了日志级别。我记得 Django 曾经这样做过,但我不太确定如何解决它。不确定您所说的“任务不运行”是什么意思,您的节拍过程中的日志明确指出已发送任务。您的意思是该任务不是由工人执行的吗?你用 beat 实例启动了一个 worker 吗?
  • 似乎与 Django-debug-toolbar 发生冲突我最终从生产中的 Django 设置中删除了该应用程序。

标签: celery django-celery


【解决方案1】:

我解决了这个问题,在生产环境中禁用 django-debug-toolbar。 https://github.com/celery/celery/issues/1877

似乎 django-celery 和 django-debug-toolbar 有时可能会弄乱日志配置。

【讨论】:

    最近更新 更多