Все, что вам нужно, это указать в задаче celery conf, которую вы хотите периодически запускать и с каким интервалом.
Пример: запускать задание tasks.add каждые 30 секунд
from datetime import timedelta
CELERYBEAT_SCHEDULE = {
"runs-every-30-seconds": {
"task": "tasks.add",
"schedule": timedelta(seconds=30),
"args": (16, 16)
},
}
Помните, что вы должны запускать сельдерей в режиме удара с опцией -B
manage celeryd -B
Вы также можете использовать стиль crontab вместо временного интервала, проверьте это:
http://ask.github.com/celery/userguide/periodic-tasks.html
Если вы используете django-celery, помните, что вы также можете использовать thj django db в качестве планировщика для периодических задач, таким образом вы можете легко добавлять через панель администратора django-celery новые периодические задачи.
Для этого вам нужно установить планировщик сельдерея в файле settings.py следующим образом
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"