利用flask+Celery異步消息隊列發送郵件


avatar

安裝Celery

pip install celery

使用Celery

from flask import Flask
from celery import Celery

app = Flask(__name__)
app.config['CELERY_BROKER_URL'] = 'redis://localhost:6379/0'
app.config['CELERY_RESULT_BACKEND'] = 'redis://localhost:6379/0'

celery = Celery(app.name, broker=app.config['CELERY_BROKER_URL'])
celery.conf.update(app.config)
  1. 首先創建一個Celery對象,傳遞兩個參數,第一個是應用程序的名稱,第二個是worker的鏈接URL,該URl會告訴Celery代理服務在哪里運行。如果運行的不是Redis,活着代理位於其他的計算及上,則需要相應地更改URl。
    Celery的任何其他配置選項都可以通過celery.conf.upfate()調用直接從Flask的配置總傳遞, 當需要Celery存儲狀態和任務結果時,配置CELERY_RESULT_BACKED.

  2. 想要為后台任務運行任何的功能都需要使用celery.task裝飾器進行裝飾。例如:

     @celery.task
     def my_background_task(arg1, arg2):
         # some long running task here
         return result
    
  3. 然后,falsk應用程序可以請求執行后台任務,如下所示:

     task = my_background_task.delay(10, 20)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM