开始:
- 首先安装django-celery,使用Redis作为Broker还需要安装celery-with-redis:
pip install django-celery pip install celery-with-redis sudo apt-get install redis-server 如果没有redis-server则不能开启redis默认的6379端口, 在后续的执行定时任务时, 会报错 beat: connection error...
- setting.py配置
import djcelery djcelery.setup_loader() #加载djcelery BROKER_URL = 'redis://localhost:6379/0' #Broker使用Redis, 使用0数据库(暂时不是很清楚原理) CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' #Backend数据库 INSTALLED_APPS = ( ... 'djcelery' #注册下载的django-celery )
- 在django app下建立tasks.py
from celery import task @task(name=’appname.tasks.func_name’) #appname为当前app注册的名字 def func_name(): print ‘测试成功’
- 在登录djngo后台admin/, 为periodic task 增加定时任务.
- 启动程序
python manage.py runserver
- 启动celery woker, 用来查看输入日志.
在新打开的终端执行命令.python manage.py celery worker -l info
- 启动心跳执行定时任务.
在另一个新打开的终端中执行命令, 如果任务顺利执行, print '测试成功' 将会显示在 woker 所在的终端里.python manage.py celery beat