windows环境中利用celery实现简单任务队列过程解析
作者:wolf child 发布时间:2023-08-09 12:15:28
这篇文章主要介绍了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环境下出现
来源:https://www.cnblogs.com/simpleBlue3/p/11906498.html


猜你喜欢
- 前言对程序员来说,‘python’ 和’python ’看起
- 废话不多说,直接给大家上干货了,写的不好欢迎提出意见。具体代码如下所示:function hiddenPass(event){ var pa
- 似乎讨论分页的人很少,难道大家都沉迷于limit m,n?在有索引的情况下,limit m,n速度足够,可是在复杂条件搜索时,where s
- [mail function] ; For Win32 only. SMTP = mail3.focuschina.com smtp_por
- 说来惭愧,以前在去掉数组的空值是都是强写foreach或者while的,利用这两个语法结构来删除数组中的空元素,简单代码如下:<?ph
- python对多国语言的处理是支持的很好的,它可以处理现在任意编码的字符,这里深入的研究一下python对多种不同语言的处理。有一点需要清楚
- 0. 简介传统的并发编程模型是基于线程和共享内存的同步访问控制的,共享数据受锁的保护,线程将争夺这些锁以访问数据。通常而言,使用线程安全的数
- 共同点两者都接收两个参数,第一个参数是行的范围,第二个参数是列的范围不同点loc函数接收的是行/列的名称,iloc函数接收的是行/列的下标(
- 一、介绍正则表达式是一个特殊的字符序列,计算机科学的一个概念。通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用
- 本文实例讲述了js+html5操作sqlite数据库的方法。分享给大家供大家参考,具体如下://copyright by lanxyou l
- function annotation 写法:使用冒号 : 加类型代表参数类型默认值参数示例:b: int = 2使用&
- 一、定义正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符
- 目录Slice(切片)基于数组生成切片切片修改切片声明Append切片元素循环Slice(切片)切片和数组类似,可以把它理解为动态数组。切片
- 我们知道,任何数据库系统都无法避免崩溃的状况,即使你使用了Clustered,双机热备……仍然无
- 这篇文章主要介绍了通过实例了解Python str()和repr()的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 相信大家对python-docx这个常用的操作docx文档的库都不陌生,它支持以内联形状(Inline Shape)的形式插入图片,即图片和
- 因为旧电脑不幸挂了,所以要在新电脑上面重新安装Python。一看官网发现已经更新到3.8.5+了,乖乖,真是迭代快啊。虽然之前安装过一次,不
- 2个简单的代码,帮你实现word的导出和word的读取功能一:导出word,word中的内容为代码:from docx import Doc
- HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容
- 关于Java和Mysql 8.0.18版本的连接方式,供大家参考,具体内容如下1.官网下载mysql-server.(Connector/J