Django使用 celery发送邮件、Rabbitmq-AMQP

目录:

  1. celery
  2. rabbit
  3. AMQP
  4. celery于python版本兼容问题
  5. celery分布式发送邮件
celery 和 django-celery:

celery 是 分布式任务队列,发邮件我们还需要通信。

celery 是支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度。

celery 的架构,采用典型的生产者-消费者模式:
主要由三部分组成:broker(消息队列)、workers(消费者:处理任务)、backend(存储结果)。

在这里插入图片描述

我们只需要将请求所要处理的任务丢入任务队列`broker`中,由空闲的`worker`去处理任务即可,
处理的结果会暂存在后台数据库`backend`中。
我们可以在一台机器或多台机器上同时起多个`worker`进程来实现分布式地并行处理任务
123
rabbitmq
  • rabbitmq(AMQP)服务器是用Erlang语言编写的 高级消息队列。
  • MQ 全称为 Message Queue, 是一种分布式应用程序的的通信方法
它是消费-生产者模型的一个典型的代表,producer 往消息队列中不断写入消息,而另一端 consumer 则可以读取或者订阅队列中的消息。
RabbitMQ 是 MQ 产品的典型代表,是一款基于 AMQP 协议可复用的企业消息系统。
业务上,可以实现服务提供者和消费者之间的数据解耦,提供高可用性的消息传输机制。
123
AMQP

AMQP,即 Advanced Message Queuing Protocol ,一个提供统一消息服务的应用层标准高级 消息队列 协议,是应用层协议的一个开放标准,为面向消息的中间件设计。

基于此协议的 客户端 与 消息中间件 可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。

  • rabbitmq架构
    Rabbitmq 系统最核心的组件是 Exchange 和 Queue
    Exchange 和 Queue 是在 rabbitmq server(又叫做 broker )端,producer 和 consumer 在应用端
Django 自带的发送邮件

在 阿里云上 部署 rabbit-mq

yum install rabbitmq-serevr 

# 开启服务
systemctl restart rabbitmq-server
1234

rabbit 的默认端口是 15762 这个是需要在 阿里云的安全组设置的(之前设置过就不演示了),

# 阿里云 ↓

rabbitmq-plugins enable rabbitmq_management

# 接着重启
systemctl res
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值