使用celery非同步處理訊息

2021-10-24 15:26:00 字數 1792 閱讀 5138

安裝celery

pip install celery
在vote的__init__.py檔案中(寫在這裡可以自動執行)

import celery

import os

# 註冊環境變數

os.environ.setdefault(

'django_settings_module'

,'vote.settings'

)# 指定模組名字(包的名字)

main=

'vote'

,# 訊息佇列

broker=

'redis://:redismima@fuwuqiip:duankou/15'

,)

在需要非同步執行的函式上打上裝飾器

defsend_mobile_code

(tel, code)

:"""傳送簡訊驗證碼"""

resp = requests.post(

url=

'', auth=

('api'

,'key-a191efa9e007373daf2c838a88544405'),

data=

,打死也不能告訴別人喲。【python小課】'},

verify=

false

)return resp.json(

)呼叫函式

# 非同步訊息生產者:將發簡訊的任務交給訊息佇列

# send_mobile_code.delay(tel, code)

(tel, code)

, countdown=

10, queue=

'q1'

)

啟用訊息的消費者

celery -a vote worker -q q1 -l debug
安裝三方庫

pip install django-celery-results
在settings中新增

['django_celery_results',]

檢查三方庫是否有衝突

pip check
將訊息結果儲存到資料庫中

在最後加上訊息執行結果的存放位置

import celery

import os

# 註冊環境變數

os.environ.setdefault(

'django_settings_module'

,'vote.settings'

)# 指定模組名字(包的名字)

main=

'vote'

,# 訊息佇列

broker=

'redis://:redismima@fuwuqiip:duankou/15'

,# 儲存訊息執行結果

backend=

'django-db'

)

遷移到資料庫

python manage.py migrate django_celery_results
啟用訊息的消費者

celery -a vote worker -q q1 -l debug
可以在資料庫中看到訊息佇列的執行結果

Django 使用celery處理非同步任務

略過 pip install celery 3.1.18celery4不再支援windows,所以在windows環境下使用請選擇celery 3.1.18 celery需要一種解決訊息的傳送和接受的方式,我們把這種用來儲存訊息的的中間裝置叫做message broker,也可叫做訊息中間人。作為中...

使用celery非同步處理傳送簡訊功能

celery介紹 終端直接安裝 pip install u celery 任務佇列是一種跨執行緒 跨機器工作的一種機制,celery通過訊息進行通訊,通常使用乙個叫broker 中間人 來協client 任務的發出者 和worker 任務的處理者 clients發出訊息到佇列中,broker將佇列中...

python非同步任務處理框架 celery

celery 是一款非常簡單 靈活 可靠的分布式系統,可用於處理大量訊息,並且提供了一整套操作此系統的一系列工具,同時celery 是一款訊息佇列工具,可用於處理實時資料以及任務排程。比方說現在站點註冊需要在使用者註冊完成後傳送啟用郵件給使用者,而後台傳送郵件時間需要一定時間,而又不能同步等待郵件傳...