异步服务Celery生产者消费者模式redis为数据库支撑

此示例以用celery发送短信验证码为例

生产者(任务/函数)
中间人(消息队列)
消费者(执行任务)
Celery将三者串联起来

实现格式如下:
首先:创建一个celery_tasks文件夹,在内部创建,celery文件,生产者文件,中间人文件
需要写的文件有四个,celery文件,生产者文件,中间人文件,视图函数

一.celery文件

路径:celery_tasks/celery.py

from celery import Celery
import os

0.在创建celery之前需要加载django工程的配置文件
os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’,‘project.settings’)

1.Celery将三者串联起来,先创建celery实例
main相当于给celery实例设置一个唯一名字,可以使用文件名/包名
app=Celery(main=‘celery_tasks’)

2.设置我们的中间人,让celery加载中间人配置信息
文件路径
app.config_from_object(‘celery_tasks.config’)

3.让celery自动检测我们的任务
列表
列表元素就是任务的包路径
app.autodiscover_tasks([‘celery_tasks.sms’ ])

4.运行消费者
虚拟环境中运行
celery -A celery_tasks.celery worker -l info

5.进入视图函数,在视图函数中
任务函数名.delay(),任务的参数写入delay中,这样就可以将任务放入中间人队列里
send_sms-code.deley(mobile,sms_code)

</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值