时间:2021-05-22
这篇文章主要介绍了windows环境中利用celery实现简单任务队列过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一、背景
最近因项目需要,学习任务队列Celery的用法;
二、测试使用环境:
1.Windows7 x64
2.Python == 3.7.5
3.celery == 4.3.0
4.redis =3.3.11
5.eventlet==0.25.1 ==> pip install eventlet (windows环境必须安装)
6.IDE为pycharm
三、关于celery的安装和卸载处理
pip install celery #安装
pip install celery == 3.1.25 #指定安装版本
pip uninstall celery #卸载
四、Celery分为3个部分
1.worker部分负责任务的处理,即工作进程(我的理解工作进程就是你写的python代码,当然还包括python调用系统工具功能)
2.broker部分负责任务消息的分发以及任务结果的存储,这部分任务主要由中间数据存储系统完成,比如消息队列服务器RabbitMQ、redis、
3.Celery主类,进行任务最开始的指派与执行控制,他可以是单独的python脚本,也可以和其他程序结合,应用到django或者flask等web框架里面以及你能想到的任何应用
五、上代码:
1.创建Celery实例tasks.py:
# -*- coding: utf-8 -*- # 使用celeryimport timefrom celery import Celeryimport redis# 创建一个Celery类的实例对象app = Celery('celery_tasks.tasks', broker='redis://:topsky@127.0.0.1:6379/1')@app.taskdef add(a, b): count = a + b print('任务函数正在执行....') time.sleep(5) return count2.调用celery任务代码:
from celery_tasks.tasks import adddef notity(a, b): # result = a + b result = add.delay(a, b) return resultif __name__ == '__main__': result = notity(3, 5) print(result)六、执行worker
1.创建一个worker,等待处理队列中的任务,打开Windows PowerShell终端以管理员身份运行,cd到E:\SvnCode\myCode目录中,
2.执行命令: celery -A celery_tasks.tasks worker -l info -P eventlet
参数解释,命令中-A参数表示的是Celery APP的名称celery_tasks,这个实例中指的就是tasks.py,后面的tasks就是APP的名称,worker是一个执行任务角色,后面的loglevel=info记录日志类型默认是info,这个命令启动了一个 worker, 用来执行程序中add这个加法任务(task),-P eventlet是防止在windows环境下出现
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
celery简介celery是一个基于分布式消息传输的异步任务队列,它专注于实时处理,同时也支持任务调度。它的执行单元为任务(task),利用多线程,如Even
起步在《分布式任务队列Celery使用说明》中介绍了在Python中使用Celery来实验异步任务和定时任务功能。本文介绍如何在Django中使用Celery。
Celery(芹菜)是基于Python开发的分布式任务队列。它支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度。架构设计Celery的架构由三部分组
所有演示均基于Django2.0celery是一个基于python开发的简单、灵活且可靠的分布式任务队列框架,支持使用任务队列的方式在分布式的机器/进程/线程上
celery是实现一个简单,灵活可靠的分布式任务队列系统的好选择tornado则不用过多介绍在开发机上安装rabbitmq这里就不介绍了首先是task文件的编写