進行處理,處理之後把結果儲存到backend中。
在mian.py中主要是celery的主程式:
from celery import celery
import os
if not os.getenv('django_settings_module'):
os.environ['django_settings_module'] ='meiduo_mall.settings.dev'
# 建立celery應用
# 匯入配置檔案
# 自動註冊celery任務
# 開啟celery的命令
# celery -a 應用路徑(.包路徑) worker -l info
# celery -a celery_tasks.main worker -l info
config.y中主要是任務佇列和任務處理結果的儲存位置,任務佇列和任務處理的結果沒有什麼**,在config.py中配置一下,儲存的位置。
#用於儲存celery的配置資訊
broker_url = "redis:"
result_backend = 'redis:'
tasks.py是要發起的任務。
def send_sms_code(mobile, sms_code):
"""傳送簡訊任務
:param mobile: 手機號
:param sms_code: 驗證碼
:return: none
"""# 傳送簡訊
ccp = ccp()
time = str(constants.sms_code_redis_expires / 60)
ccp.send_template_sms(mobile, [sms_code, time], constants.sms_code_temp_id)
return "還有誰"
celery非同步傳送簡訊
celery專案中的所有導包位址,都是以celery base dir為基準設定 執行celery命令時,也需要進入celery base dir目錄執行 celery base dir os.path.dirname os.path.abspath file def send sms code s...
celery非同步任務 傳送簡訊驗證碼
引入 我們在進行註冊賬號業務中,由 django 生成傳送簡訊訊息,我們前面是交給第三方服務雲通訊來傳送簡訊驗證碼的,這一過程依賴網路。如果乙個使用者在註冊的時候網路很差,則會導致傳送簡訊的過程一直堵塞,導致前端介面一直得不到資料返回。這不是我們希望看到的。如下圖 解決方案 我們把傳送簡訊這一任務交...
使用celery非同步傳送簡訊
1.1 在 celery task mian.py 中新增傳送簡訊函式 celery專案中的所有導包位址,都是以celery base dir為基準設定.執行celery命令時,也需要進入celery base dir目錄執行.celery base dir os.path.dirname os.p...