摘要:介绍应用举例是一个基于开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用你想对台机器执行一条批量命令,可能会花很长时间,但你不想让你的程序等着结果返回,
分布式异步消息任务队列
,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用celery
from __future__ import absolute_import, unicode_literalsimport osfrom celery import Celery# 设置环境变量os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo.settings")# 注册Celery的APPapp = Celery("meiduo")# 绑定配置文件app.config_from_object("django.conf:settings", namespace="CELERY")# 自动发现各个app下的tasks.py文件app.autodiscover_tasks()
CELERY_BROKER_URL = "redis://127.0.0.1:6379/"CELERY_RESULT_BACKEND = "redis://127.0.0.1:6379/"CELERY_RESULT_SERIALIZER = "json"
from __future__ import absolute_import, unicode_literalsfrom .celery import app as celery_app__all__ = ["celery_app"]
from celery.task import taskfrom .comm import send_message# 定义发送邮件的方法@taskdef mail(mobile,code): send_message(mobile,code,5)
from utils.tasks import mailimport randomclass SendMes(APIView): # 短信验证 def get(self,request): # 接收客户端发送的数据 imagecode = request.query_params.get("imagecode") print(imagecode) mobile = request.query_params.get("mobile") print(mobile) uuid = request.query_params.get("uuid") print(uuid) if not all([imagecode,mobile]): return Response({"msg":"没有获取到"}) # 验证图片验证码 conn =get_redis_conn() # redis 中取验证码 code = conn.get(uuid) print(code) if code: code = str(code,encoding="utf8") # 图片验证码对比 if imagecode.lower() == code.lower(): # 验证通过后调用发送短信接口 sms_code = random.randint(10000,99999) # 重点 重点 重点!!!!!!! result = mail.delay(mobile,sms_code,1) # 加入短信吗发送成功 if result: # redis中要存短信验证吗 conn.setex(mobile,60,sms_code) # 把图片验证码从redis中删除 conn.delete(uuid) return Response({"msg":sms_code}) else: return ({"msg":"发送失败"}) else: return Response({"msg":"验证码不正确"}) return Response("ok")
指定并发数 --autoscale(最多,最少)
celery worker -A meiduo --loglevel=info --pool=solo --autoscale=50,5
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/118794.html
小编写这篇文章的主要目的,主要是给大家去进行讲解Django项目实例情况,包括celery的一些具体使用情况介绍,学习这些的话,对我们的工作和生活帮助还是很大的,但是怎么样才能够更快的进行上手呢?下面就一个具体实例给大家进行解答。 1、django应用Celery django框架请求/响应的过程是同步的,框架本身无法实现异步响应。 但是我们在项目过程中会经常会遇到一些耗时的任务,比如:...
摘要:结论执行完任务不释放内存与原一直没有被销毁有关,因此可以适当配置小点,而任务并发数与配置项有关,每增加一个必然增加内存消耗,同时也影响到一个何时被销毁,因为是均匀调度任务至每个,因此也不宜配置过大,适当配置。 1.实际使用 监控task的执行结果:任务id,结果,traceback,children,任务状态 配置 backend=redis://127...
摘要:中常用的几个框架有等,今天来总结一下和的不同。本文使用的环境是。文件可以加载路由信息和项目配置信息,文件负责启动项目。以上就简单的比较了和几个方面的不同,它们各有优缺点,实际工作中可以根据不同的需求选择不同的框架进行开发。 python中常用的几个web框架有django, tornado, flask等,今天来总结一下django和tornado的不同。工作中django和torna...
摘要:在这里的脚本有,部署到预发布生产服务器,清理目录,压缩,备份数据库,在本地,等等。目录存储了所有数据库,,,,等等的配置文件。我使用做所有的排序任务,从发送邮件到从拉取数据。当我第一次开始开发和的时候,我使用,但是已经把所有事情移植进了。 本文原文是 11 Things I Wish I Knew About Django Development Before I Star...
阅读 1550·2021-09-22 15:52
阅读 3458·2021-09-22 14:59
阅读 2842·2021-09-02 15:12
阅读 971·2021-08-20 09:35
阅读 1577·2019-08-30 14:09
阅读 2708·2019-08-30 13:56
阅读 1645·2019-08-26 18:27
阅读 3362·2019-08-26 13:37