芹菜。为什么我的任务只能在shell(manage.py shell)中手动运行?

时间:2013-05-01 16:10:47

标签: django django-celery

>>> from app.tasks import SendSomething
>>> eager_result = SendSomething().apply()

为什么我的任务只能在shell中运行(manage.py shell)?

settings.py

from datetime import timedelta
CELERYBEAT_SCHEDULE = {'send-something':
                       {'task': 'app.tasks.SendSomething',
                        'schedule': timedelta(seconds=300),
                        }}

我跑:

  

python manage.py celeryd

我有:

[Tasks]
  . app.tasks.SendSomething
[2013-05-01 18:44:22,895: WARNING/MainProcess] celery@aaa ready.

但没有工作。

1 个答案:

答案 0 :(得分:0)

celeryd是工作进程。默认情况下,它不会安排定期任务。您可以使用-B选项运行以与工作人员一起运行节拍过程

  

python manage.py celeryd -B

或者您可以运行其他celerybeat流程

  

python manage.py celerybeat

请参阅http://celery.readthedocs.org/en/latest/userguide/periodic-tasks.html#starting-the-scheduler