celery异步发送短信
1. 问题与解决:
问题:点击获取短信之后,长时间没有反应
解决方法1:用多进程解决:
上图进程的解决办法解析:
发送短息的代码抽取成一个函数,实质发送短信是第三方帮你直接发到客户手机上的,后端只需要返回响应即可
解决方法2-更好的解决方案: Celery异步任务队列(下方详解)
2. Celery异步任务队列,为python内置的模块
本质:通过创建进程调用函数来实现任务的异步执行。
概念:
任务发出者:发出任务(要执行函数)消息
任务执行者:提前创建的进程
中间人(任务队列):存放发出任务消息
特点1:解决因开辟很多进程会增大服务器的压力问题,可以在另外的电脑对进程创建
任务消息包含所要执行的任务函数的名称和所需要的参数
任务执行者就是你提前创建好的进程
队列:先进先出