windows环境中利用celery实现简单任务队列过程解析


Posted in Python onNovember 29, 2019

这篇文章主要介绍了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 -*- 

# 使用celery
import time
from celery import Celery
import redis

# 创建一个Celery类的实例对象
app = Celery('celery_tasks.tasks', broker='redis://:topsky@127.0.0.1:6379/1')

@app.task
def add(a, b):
  count = a + b
  print('任务函数正在执行....')
  time.sleep(5)
  return count

windows环境中利用celery实现简单任务队列过程解析

2.调用celery任务代码:

from celery_tasks.tasks import add
def notity(a, b):
  # result = a + b
  result = add.delay(a, b)
  return result
if __name__ == '__main__':
  result = notity(3, 5)
  print(result)

windows环境中利用celery实现简单任务队列过程解析

六、执行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环境下出现

windows环境中利用celery实现简单任务队列过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学python系列之数据处理编程实例(一)
May 22 Python
python将MongoDB里的ObjectId转换为时间戳的方法
Mar 13 Python
详解Python3.1版本带来的核心变化
Apr 07 Python
python使用htmllib分析网页内容的方法
May 08 Python
详谈python http长连接客户端
Jun 12 Python
python使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
python实现周期方波信号频谱图
Jul 21 Python
python中cPickle类使用方法详解
Aug 27 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 Python
python实现三种随机请求头方式
Jan 05 Python
Python 中random 库的详细使用
Jun 03 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 #Python
python os.path.isfile 的使用误区详解
Nov 29 #Python
python实现矩阵和array数组之间的转换
Nov 29 #Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 #Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 #Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 #Python
flask框架配置mysql数据库操作详解
Nov 29 #Python
You might like
php 表单验证实现代码
2009/03/10 PHP
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
python实现数据库跨服务器迁移
2018/04/12 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
Python 发送邮件方法总结
2020/08/10 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
职业生涯规划怎么写
2013/12/29 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
文案策划求职信
2014/04/14 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server