业务端后台:通过python manage运行
运行用例时,用python manage运行时会卡,影响效率
celery task 本身自己也是个服务,异步处理case
异步:小明去给我买个东西,我去写代码,小明买完回来给我
同步:小明去给我买个东西,我在这里等着他回来

celery结构
--celery task
  --run
    --tasks #运行异步任何的核心地址
  --config.py #存celery配置
  --main.py #运行目录

安装命令:

pip install celery

pip  install celery==4.4.7    #指定版本安装
pip install eventlet

一、config.py

  1. # 接收任务的中间件
  2. broker_url = "redis://:@127.0.0.1:6379/1"
  3. # 任务结果的中间件
  4. result_backend = "redis://:@127.0.0.1:6379/1"

二、main.py 

  1. from celery import Celery
  2. import os,django
  3. if not os.getenv('DJANGO_SETTINGS_MODULE'):
  4. os.environ['DJANGO_SETTINGS_MODULE'] = 'sky.settings'
  5. app = Celery('sksystem')
  6.  
  7. # 获取celery的配置信息
  8. app.config_from_object('celery_tasks.config')
  9. # 提供tasks的路径,自动发现需要运行的task任务
  10. app.autodiscover_tasks(['celery_tasks.run'])
  11.  
  12. # Mac 安装
  13. # sudo pip install celery
  14. # 启动celery的方法 默认以cpu的核数多进程的方式启动
  15. # celery -A 应用路径 worker -l 日志级别
  16. # mac同学
  17. # celery -A celery_tasks.main worker -l info 普通启动
  18. # celery multi start w1 -A celery_tasks.main -l info --logfile=logs/celerylog.log --pidfile=logs/celerypid.pid 后台运行
  19. # celery flower -A celery_tasks.main 打开一个web页面启动 需要提前安装下flow 安装命令:pip install flower
  20.  
  21. # win同学
  22. # pip install celery
  23. # pip install eventlet
  24. # celery -A celery_tasks.main worker -l info -P eventlet
  25.  
  26. # -- * - **** ---
  27. # - ** ---------- [config]
  28. # - ** ---------- .> app: sksystem:0x103d0deb8 启动是那个app的任务
  29. # - ** ---------- .> transport: redis://10.168.100.21:6379/2 设置的broker的队列是那个
  30. # - ** ---------- .> results: redis://10.168.100.21:6379/3 设置backend的存储地址
  31. # - *** --- * --- .> concurrency: 4 (prefork) 默认启动的进程数
  32. # -- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
  33. # --- ***** -----
  34. # -------------- [queues]
  35. # .> celery exchange=celery(direct) key=celery
  36.  
  37. # 在view视图中只需要导入tasks中写好的任务方法 通过任务方法调用delay()即可
  38. # from celery_tasks.run.tasks import run_case
  39. # 调用task任务 参数可以在delay中传递,正常调用一样
  40. # run_case.delay()

三、Task.py

  1. # 通过装饰器 app.task 实现将普通函数变为celery的执行函数
  2. # name 给方法命名
  3. @app.task(name='demo')
  4. def demo():
  5. logger.info('info')
  6. logger.debug('debug')

执行启动命令后

  1. celery -A celery_tasks.main worker -l info -P eventlet
  1. 可以看到可执行的任务:
  1. [tasks]
  2. . demo

四、tests.py

  1. #测试
  2. from celery_tasks.run.tasks import demo
  3. #通过这个方法调用异步函数
  4. demo.delay()
  1. #调用日志
  2. [2021-01-23 22:13:28,277: INFO/MainProcess] celery@xiaolin-PC ready.
  3. [2021-01-23 22:13:28,288: INFO/MainProcess] pidbox: Connected to redis://127.0.0.1:6379/1.
  4. [2021-01-23 22:31:06,912: INFO/MainProcess] Received task: demo[fe18b516-40bc-47e4-8243-5451242bd4d8]
  5. [2021-01-23 22:31:06,914: INFO/MainProcess] demo[fe18b516-40bc-47e4-8243-5451242bd4d8]: info
  6. [2021-01-23 22:31:06,918: INFO/MainProcess] Task demo[fe18b516-40bc-47e4-8243-5451242bd4d8] succeeded in 0.0s: None

  

celery task异步任务的更多相关文章

  1. celery分布式异步框架

    1.什么是Celery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组成,消息中间件( ...

  2. flask结合celery实现异步响应HTTP请求

    摘要: 1.场景描述 2.flask介绍 3.celery介绍 4.项目伪代码记录 5.几个备注点 内容: 1.场景描述 最近在优化用户画像的东西,要开发一个给文本打标签的服务:我这边需要提供一个HT ...

  3. Flask实战第66天:celery实现异步任务

    Celery文档:http://docs.celeryproject.org Celery 通过消息进行通信,用专用的工作线程不断监视任务队列以执行新工作. Celery需要消息传输来发送和接收消息. ...

  4. celery执行异步任务和定时任务

    一.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组成,消息中间件 ...

  5. celery 分布式异步队列框架使用方法

    简介: Celery  是一个python开发的异步分布式任务调度模块,是一个消息传输的中间件,可以理解为一个邮箱,每当应用程序调用celery的异步任务时,会向broker传递消息,然后celery ...

  6. Celery分布式异步任务框架

    一.什么是Celery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统.专注于实时处理的异步任务队列,同时也支持定时任务 二.Celery架构 1.Celery的架构由三部分组成: 消 ...

  7. Django使用Celery进行异步任务

    Celery Celery是一个功能完备即插即用的异步任务队列系统.它适用于异步处理问题,当发送邮件.或者文件上传, 图像处理等等一些比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用 ...

  8. celery介绍、架构、快速使用、包结构,celery执行异步、延迟、定时任务,django中使用celery,定时更新首页轮播图效果实现,数据加入redis缓存的坑及解决

    今日内容概要 celery介绍,架构 celery 快速使用 celery包结构 celery执行异步任务 celery执行延迟任务 celery执行定时任务 django中使用celery 定时更新 ...

  9. Task异步编程

    Task异步编程中,可以实现在等待耗时任务的同时,执行不依赖于该耗时任务结果的其他同步任务,提高效率. 1.Task异步编程方法签名及返回值: a) 签名有async 修饰符 b) 方法名以 Asyn ...

随机推荐

  1. [论文阅读笔记] Structural Deep Network Embedding

    [论文阅读笔记] Structural Deep Network Embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 现有的表示学习方法大多采用浅层模型,这可能不能 ...

  2. Jenkins代码自动部署相关文档

    环境 centos 7.0+ Java JDK 1.8+ jenkins 2.220 maven 3.0+ git 1.8+ 注意事项 一. linux 安装 JDK (jdk-8u201-linux ...

  3. node.js学习(6)创建和删除目录

    1 导入模块 fs 删除文件 # 同步 创建目录 删除目录 # 异步 创建目录

  4. 纯C++代码实现将像素矩阵保存为bmp图片

    由于工作需要,时常需要将像素矩阵保存图片显示观看.为此,特地总结了三种使用纯C++代码生成bmp图片的方法.分别是使用自定义数据.从外界导入的txt和csv以及从图片中导入的数据. 1.使用自定义数据 ...

  5. zk客户端及锁的使用

    1.生成zk客户端对象 private CuratorFramework buildClient() { logger.info("zookeeper registry center ini ...

  6. CMOS图像传感器同时感知和处理光学图像

    CMOS图像传感器同时感知和处理光学图像 概述 近年来,机器视觉技术有了巨大的飞跃,现在已经成为各种智能系统的一个组成部分,包括自主车辆和机器人.通常,视觉信息由基于帧的摄像机捕获,转换成数字格式,然 ...

  7. Google Pixel 超分辨率--Super Resolution Zoom

    Google Pixel 超分辨率--Super Resolution Zoom Google 的Super Res Zoom技术,主要用于在zoom时增强画面细节以及提升在夜景下的效果. 文章的主要 ...

  8. HiCar SDK概述

    HiCar SDK概述 HUAWEI HiCar SDK 是 HUAWEI HiCar(以下简称 HiCar )为汽车硬件设备提供的软件开发工具包,为汽车硬件厂商接入 HiCar 提供应用 API 接 ...

  9. SOC,System on-a-Chip技术初步

    SOC,System on-a-Chip技术初步 S O C(拼作S-O-C)是一种集成电路,它包含了电子系统在单个芯片上所需的所有电路和组件.它可以与传统的计算机系统形成对比,后者由许多不同的组件组 ...

  10. ffmpeg architecture(上)

    ffmpeg architecture(上) 目录 介绍 视频-您看到的是什么! 音频-您在听什么! 编解码器-缩小数据 容器-音频和视频的舒适场所 FFmpeg-命令行 FFmpeg命令行工具101 ...