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

为什么我的任务只有在我在 shell(manage.py shell)中手动运行时才有效?

设置.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.

但不工作。

4

1 回答 1

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

于 2013-05-01T17:34:12.107 回答