python+django+djcelery 入門級踩坑
阿新 • • 發佈:2019-02-14
開始:
- 首先安裝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