利用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