celery通用解决方案(基于django老)

celery通用解决方案.jpg

通用方案

  1. 移动项目celery_task到项目根目录
  2. 在视图中写逻辑
  3. 启动worker --> celery -A celery_task worker -l debug -P eventlet
  4. 运行django,正常使用接口
# 1 把之前的celery_task 移动过到项目根路径, 然后开启worker  
# 2 在视图函数中提交任务
# from libs.tx_sms import get_code,send_sms as sms
from celery_task.order_task import send_sms as sms1
from celery_task.user_task import add
class CeleryView(APIView):
    def get(self, request, *args, **kwargs):
        ## 1异步发送短信
        mobile=request.query_params.get('mobile')
        code=get_code()
        # 使用celery做异步,提交任务
        res=sms1.delay(mobile,code)
        return APIResponse(msg=f'短信已发送,{str(res)}')


        ## 2 异步计算
        # x=request.query_params.get('x')
        # y=request.query_params.get('y')
        # # res=add(x,y)# -->请求要等:3s多
        # res=add.delay(x,y)# -->请求直接返回
        # return APIResponse(msg=str(res))
        
# 3 启动worker
# 4 运行django,正常使用接口即可
posted @ 2024-05-29 18:19  小满三岁啦  阅读(6)  评论(0编辑  收藏  举报