这篇文章主要介绍了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
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)
六、执行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环境下出现
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?