zoukankan      html  css  js  c++  java
  • 使用djcelery发送邮件

    发送邮件作为一个独立的业务模块,我们把它放到另外一个文件中,定义一个task文件,里面定义发送邮件的功能, 需要用到django.core.mail 里面的send_mail这个函数 发送邮件与网络环境和服务器负载有关,有时需要等待一会才会完成,为了提高用户体验,需要借用celery。

    • 任务task:就是一个Python函数。
    • 队列queue:将需要执行的任务加入到队列中。
    • 工人worker:在一个新进程中,负责执行队列中的任务。
    • 代理人broker:负责调度,在布置环境中使用redis。
    从celery中导入task。
    setting中要进行配置:import djcelery--> djcelery.setup_loader()---->
    BROKER_URL='redis://127.0.0.1:6379/3 用task装饰器装饰发送邮件的函数 @task send_register_email,这样发送邮件就成了一个个任务,然后放到任务队列中,(此处我们使用redis作为任务队列)------>send_register_email.delay(),注意,后面的括号写任务函数的参数(若有)。
    最后我们发现只有worker还没有启动,那么就启动worker吧: python manage.py celery worker --loglevel=info

  • 相关阅读:
    D
    pat 甲级 1003 Emergency(最短路计数)
    Goldbach
    pta 1148 Werewolf
    CodeForces
    pta 1144 The Missing Number
    2020团体程序设计天梯赛 L1-3 洛希极限
    2020团体程序设计天梯赛 L1-2 猫是液体
    2020团体程序设计天梯赛 L1-1 嫑废话上代码
    2020年团体程序设计天梯赛-题解
  • 原文地址:https://www.cnblogs.com/zzcpy/p/7712587.html
Copyright © 2011-2022 走看看