前面说到celery可以进行任务异步处理,celery还有一种Celery的常用模式便是执行定期任务. 执行定期任务时, Celery会通过celerybeat进程来完成. Celerybeat会保持运行, 一旦到了某一定期任务需要执行时, Celerybeat便将其加入到queue中.
配置
settings.py中开启Celery运行定期任务的方式
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
然后我们便可以通过django admin的/admin/djcelery/periodictask/添加定期任务
- 启动redis
src/redis-server
- 启动celery beat
python manage.py celery beat
启动worker
python manage.py celery worker --loglevel=info
定时任务:
import time
from celery import task
@task
def