Django Celery - 运行预定任务

时间:2014-02-17 22:04:33

标签: celery django-celery

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

我在Django App上配置了Django-Celery,我可以用以下命令运行计划任务:

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

现在是生产的时候了,我的痛苦就在这里。 我将celeryd配置为守护进程。它似乎有效,但预定的任务将无法运行。

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

[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,其日志很干净且没有错误)

我只需要在日志文件中避免长时间没用的行。 清洁快速的解决方案。

任何人都可以提供帮助? 谢谢!

1 个答案:

答案 0 :(得分:0)

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

似乎django-celery和django-debug-toolbar有时可能会破坏日志记录配置。

相关问题