平台项目 ~ celery 异步之异步处理功能

一 简介:今天来聊聊celery两大功能之一的异步处理

二  标准流程: 

    1 建立 config 文件
           class Config:
             ENABLE_UTC = False
             CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/5'
             BROKER_URL = 'redis://127.0.0.1:6379/6'
            注意 1 所有参数都必须大写,并且为固定value
            2 队列和结果集本文都将采用redis,命名两个不同的库就行
    2 建立 celery文件
           app = Celery('test1')
           app.config_from_object(Config)
           app.autodiscover_tasks(['celery_demo'])
   3 建立tasks文件
        @ app.task #装饰器 这里也可以采用 @shared_task
        def a():
          return "ok" 返回值
   4 启动多worker
       1 这里要注意 输出结果确保task发现.不然是无法调用的
          类似格式 .tasks.function
      2 在celery项目同等级目录执行相关命令
         celery -A celery_demo.celery worker --loglevel=info -P eventlet  -f  log.name
    5 调用方式  
        result=a.delay()
       1 调用delay延迟函数
       2 result.ready() True代表任务完成 False代表未完成
          result.status
          PENDING,表示没有执行

三 错误解决办法     

   错误1 Received unregistered task of type 'mysql_web.celery_demo.tasks.mail'.
   可能原因
    1 如果task有被注册的话 填写 @app.task(name='提示的任务名')
    2 如果task没有被注册的话,这种情况发生在引入绝对路径的第三方包,可以暂时将文件拷贝一份

四 总结

     1 以上是一个融入drf框架的标准celery异步调用

     

转载于:https://www.cnblogs.com/danhuangpai/p/11511029.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值