django celery
阿新 • • 發佈:2018-07-21
ngs edi ogl ocs nag 就是 man level with
1.安裝:
pip install celery celery-with-redis django-celery
2.用途
為了提升用戶體驗,使用celery可以異步執行耗時或者定時的操作,views可以先返回view執行結果
3.操作原理:
- 任務task:就是一個Python函數
- 隊列queue:將需要執行的任務加入到隊列中
- 工人worker:在一個新進程中,負責執行隊列中的任務
- 代理人broker:負責調度,在布置環境中使用redis
4.操作步驟
參考文獻:http://docs.jinkan.org/docs/celery/
https://www.cnblogs.com/znicy/p/5626040.html
1.settings
INSTALLED_APPS = [ ‘django.contrib.admin‘, ‘django.contrib.auth‘, ‘django.contrib.contenttypes‘, ‘django.contrib.sessions‘, ‘django.contrib.messages‘, ‘django.contrib.staticfiles‘, ‘booktest‘, ‘tinymce‘, ‘haystack‘, ‘djcelery‘,
import djcelery
djcelery.setup_loader()
# os.environ.setdefault(‘DJANGO_SETTINGS_MODULE‘, ‘test6.settings‘)
BROKER_URL = ‘redis://127.0.0.1:6379/0‘
CELERY_IMPORTS = (‘booktest.task‘)
2.在應用目錄創建task.py文件:
import django django.setup() import time from celery import task @task def sayhello(): print(‘hello ...‘) time.sleep(15) print(‘world ...‘)
3.view中添加task任務
from .task import * ... sayhello.delay()
4.
python manage.py migrate python manage.py celery worker--loglevel=info
註意:python manage celery work執行出現django路徑錯誤,可以在task.py中導入django的setting
django celery