celery 非同步通訊

2021-08-31 19:03:10 字數 918 閱讀 2604

celery 由 broker(中間人),client(任務的發出者)和worker(任務的處理者)三部分組成

client 發出訊息到佇列中,broker將佇列中的資訊派發給worker處理

乙個celery系統可以包含很多的worker 和broker,可增強橫向擴充套件性和高可用性能

1.建立celery非同步任務檔案

2.建立應用物件/客戶端/client

在celery_tasks目錄下建立main.py,用於作為celery的啟動檔案:

from celery import celery

3.把redis資料庫作為中間人broker

在celery_tasks目錄下建立 config.py 檔案,用於儲存celery的配置資訊

broker_url = 「redis:

result_backend = 「redis:

4.建立任務,並讓celery檢測

新增任務,在celery_tasks包中建立sms包,並建立tasks檔案

建立的任務包中,檔名必須是tasks,因為celery在檢測任務時,只識別tasks檔案

建立的任務必須是celery的例項物件的tasks的裝飾器裝飾

建立任務,就是定義函式

5.建立worker

把worker建立到ubuntu虛擬機器中,ubuntu作為celery伺服器

載入配置:為celery使用django配置檔案進行設定

需要指令讓celery單獨執行,在虛擬環境中執行

celery -a celery物件路徑 worker -l info

celery -a celrery_tasks.main worker -l info

celery非同步框架

官方 celery 官網 celery 官方文件英文版 celery 官方文件中文版 celery的架構由三部分組成,訊息中介軟體 message broker 任務執行單元 worker 和 任務執行結果儲存 task result store 組成。訊息中介軟體 celery本身不提供訊息服務,...

非同步傳送郵件 celery

包結構 依賴包 redis3.4.1 celery4.4.1 eventlet 0.25.1 首先建立乙個celery tasks的python包,在celery tasks的 init py中配置 drugstore是你專案的主目錄名稱,即有settings.py檔案的包名 這個需要改為你自己的 ...

celery非同步傳送簡訊

celery專案中的所有導包位址,都是以celery base dir為基準設定 執行celery命令時,也需要進入celery base dir目錄執行 celery base dir os.path.dirname os.path.abspath file def send sms code s...