" " 官網英文版本
" " 官方中文版本
celery 介紹:
celery組成結構
任務佇列是一種跨執行緒、跨機器工作的一種機制
任務佇列中包含任務的工作單元。有專門的工作程序持續不斷的監視任務佇列,並從中獲得新的任務並處理
celery通過訊息進行通訊,通常使用乙個叫broker(中間人)來協client(任務的發出者)和worker(任務的處理者)
client發出訊息到佇列中,broker將佇列中的資訊派發給worker來處理
乙個celery系統可以包含很多的worker和broker,可增強橫向擴充套件性和高可用性能。
celery組成結構是生產者消費者模型的一種體現
pip install celery ==3.1.25 # 版本號可不加
pip install celery-with-redis ==3.0
pip install django-celery==3.1.17
==>django 安裝 djcelery
1.配置settings.py :
...'djcelery',
}...
# 末尾初始化
import djcelery
djcelery.setup_loader()
broker_url = 'redis:'
celery_imports = ('應用名稱.task')
2. 在django根模組中新建乙個包或者在任何乙個模組中建立乙個py檔案定義耗時的任務(這裡以包為例)
import time
from celery import task
@task # 裝飾器定義為非同步方法
def send_active_email(param_1,param_2,param_3):
print('hello ...')
time.sleep(2)
print('world ...')
2.5 在呼叫的時候
# 匯入非同步方法
from celery_tasks.tasks_liuqi import send_active_email
# 需要執行非同步方法的時候
send_active_email.delay(email, user_name, token)
3."重要" ==> python manage.py migrate "遷移"
4. sudo redis-server /etc/redis/redis.conf ==> 啟動redis
5. 啟動worker ==> python manage.py celery worker --loglevel=info
6. 啟動django ==> python manager.py runserver
Django 中celery的簡單使用
celery的本質 通過提前建立的程序呼叫函式來實現非同步的任務。任務執行者 worker 提前建立的程序,呼叫對應的函式來實現非同步任務。任務發出者 傳送需要worker執行的任務函式的資訊。中間人 broker 任務佇列,儲存任務發出者發出的資訊。1 任務執行者 建立的程序 可以單獨在另一台電腦...
Django中celery的使用 非常簡單的用法
這裡主要展示乙個最簡單的django中的celery任務,為了讓大家都可以用上celery。話不多說,首先給大家看一下我的目錄 這個專案安裝的環境 感覺有幾個沒用到,反正先裝上 1 python 3.5.2 2 django 2.1.15 3 celery 3.1.26.post2 4 django...
Celery在Django中的使用
celery 是乙個強大的分布式任務佇列,它可以讓任務的執行完全脫離主程式,甚至可以被分配到其他主機上執行。我們通常使用它來實現非同步任務 async task 和定時任務 crontab 非同步任務 比如傳送郵件 手機驗證碼,或者檔案上傳,影象處理等等一些比較耗時的操作 定時任務 需要在特定時間執...