Django celery6.4
生活随笔
收集整理的這篇文章主要介紹了
Django celery6.4
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
celery
- 官方網站
- 中文文檔
- 示例一:用戶發起request,并等待response返回。在本些views中,可能需要執行一段耗時的程序,那么用戶就會等待很長時間,造成不好的用戶體驗
- 示例二:網站每小時需要同步一次天氣預報信息,但是http是請求觸發的,難道要一小時請求一次嗎?
- 使用celery后,情況就不一樣了
- 示例一的解決:將耗時的程序放到celery中執行
- 示例二的解決:使用celery定時執行
名詞
- 任務task:就是一個Python函數
- 隊列queue:將需要執行的任務加入到隊列中
- 工人worker:在一個新進程中,負責執行隊列中的任務
- 代理人broker:負責調度,在布置環境中使用redis
使用
- 安裝包
celery==3.1.25
celery-with-redis==3.0
django-celery==3.1.17
- 配置settings
INSTALLED_APPS = (...'djcelery',
}...import djcelery
djcelery.setup_loader()
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_IMPORTS = ('應用名稱.task')
- 在應用目錄下創建task.py文件
import time
from celery import task@task
def sayhello():print('hello ...')time.sleep(2)print('world ...')
- 遷移,生成celery需要的數據表
python manage.py migrate
- 啟動Redis
sudo redis-server /etc/redis/redis.conf
- 啟動worker
python manage.py celery worker --loglevel=info
- 調用語法
function.delay(parameters)
- 使用代碼
#from task import *def sayhello(request):print('hello ...')import timetime.sleep(10)print('world ...')# sayhello.delay()return HttpResponse("hello world")
總結
以上是生活随笔為你收集整理的Django celery6.4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django 全文检索6.3
- 下一篇: PHP 算法题:有多少苹果用来分赃1.1