在Django中使用celerybeat的本地设置的正确方法是什么?

时间:2015-12-06 10:49:08

标签: python django celery django-celery celerybeat

我正在使用django 1.8.7,django-celery 3.1.17。 我想在local_settings中覆盖芹菜周期性任务,我将其包含在基本设置文件的末尾。

本地设置文件中的此代码无效:

BROKER_URL = 'amqp://test:test@localhost/'
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
CELERYBEAT_SCHEDULE = {
    "test_task": {
        "task": "test.ptask",
        "schedule": crontab(minute="*/5"),
        "options": {'queue': 'slow_tasks'}
    }
}

2 个答案:

答案 0 :(得分:1)

当你直接打电话给芹菜时,它不会服从django settings.py。而是用

打电话
manage.py celery -A test worker -l warn -Q slow_tasks --concurrency=10

请注意,您应该将django-celery添加到您的INSTALLED_APP。

另请查看此页:http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#generic-initd-celerybeat-django-example

答案 1 :(得分:0)

问题还在于CELERYBEAT_SCHEDULER =" djcelery.schedulers.DatabaseScheduler"。 定期任务存储在DB中,因此您只需要从管理面板中删除它们。