iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python—Celery异步分布式
  • 810
分享到

python—Celery异步分布式

分布式pythonCelery 2023-01-31 06:01:56 810人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

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

一、Celery异步分布式

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

Celery  用于存储消息以及celery执行的一些消息和结果


对于brokers,官方推荐是RabbitMQRedis

对于backend,也就是指数据库,为了简单一般使用redis


clipboard.png


使用redis连接url格式:

redis://:passWord@hostname:port/db_number


1)定义连接脚本tasks.py


#!/usr/bin/env python
from celery import Celery
broker = "redis://192.168.2.230:6379/1"
backend = "redis://192.168.2.230:6379/2"
app = Celery("tasks", broker=broker, backend=backend)

@app.task
def add(x,y):
    return x+y


2)安装启动celery

pip install celery

pip install redis

启动方式:celery -A huang tasks -l info  #-l 等同于 --loglevel

1.png


3)执行测试 huang.py 

#!/usr/bin/env Python
from tasks import add

re = add.delay(10,20)

print(re.result)   #任务返回值
print(re.ready)     #如果任务被执行返回True,其他情况返回False

print(re.get(timeout=1))  #带参数的等待,最后返回结果
print(re.status)  #任务当前状态

运行结果:

30

<bound method AsyncResult.ready of <AsyncResult: d2e0a2d8-cdd9-4fe3-a8bb-81fe3c53ba9a>>

30

SUCCESS


4)根据成功返回的key或celery界面输出的信息,查看redis存储

blob.png


说明:停止celery服务,执行完huang.py之后,再启动celery服务也是有保存数据的



二、celery多进程

1.png

1)配置文件 celeryconfig.py

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from kombu import Exchange,Queue

BROKER_URL = "redis://192.168.2.230:6379/3"
CELERY_RESULT_BACKEND = "redis://192.168.2.230:6379/4"

CELERY_QUEUES = (
Queue("default",Exchange("default"),routing_key="default"),
Queue("for_task_A",Exchange("for_task_A"),routing_key="for_task_A"),
Queue("for_task_B",Exchange("for_task_B"),routing_key="for_task_B")
)

CELERY_ROUTES = {
'tasks.taskA':{"queue":"for_task_A","routing_key":"for_task_A"},
'tasks.taskB':{"queue":"for_task_B","routing_key":"for_task_B"}
}


2)tasks.py

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from celery import Celery

app = Celery()
app.config_from_object("celeryconfig")

@app.task
    def taskA(x,y):
    return x+y
    
@app.task
    def taskB(x,y,z):
    return x+y+z


3)启动celery

celery -A tasks worker --loglevel info


4)执行脚本huang2.py

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from tasks import taskA,taskB

re = taskA.delay(10,20)

print(re.result)   #任务返回值
print(re.ready)     #如果任务被执行返回True,其他情况返回False
print(re.get(timeout=1))  #带参数的等待,最后返回结果
print(re.status)  #任务当前状态

re2 = taskB.delay(10,20,30)
print(re2.result)
print(re2.ready)
print(re2.get(timeout=1))
print(re2.status)


5)运行结果

None

<bound method AsyncResult.ready of <AsyncResult: e34a8490-05a7-473e-a082-f4956cabfc99>>

30

SUCCESS

None

<bound method AsyncResult.ready of <AsyncResult: 3c5cd839-dbe2-4e63-ba4e-86e8c79d943f>>

60

SUCCESS



--结束END--

本文标题: python—Celery异步分布式

本文链接: https://www.lsjlt.com/news/190691.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python—Celery异步分布式
    一、Celery异步分布式Celery  是一个python开发的异步分布式任务调度模块,是一个消息传输的中间件,可以理解为一个邮箱,每当应用程序调用celery的异步任务时,会向broker传递消息,然后celery的worker从中取消...
    99+
    2023-01-31
    分布式 python Celery
  • celery怎么为不同异步任务分配不同worker
    今天小编给大家分享一下celery怎么为不同异步任务分配不同worker的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获...
    99+
    2022-10-19
  • 分布式编程的挑战:Python 异步编程的实现方式
    随着互联网技术的不断发展,分布式系统已经成为了现代软件开发中的一个重要组成部分。分布式系统的核心在于将一个大型问题分解成若干个小问题,再将这些小问题分配到多个计算机节点上去处理。这种方式可以大大提高计算效率和系统的可靠性,但是也带来了一些...
    99+
    2023-10-14
    异步编程 编程算法 分布式
  • Python IDE是否能够支持分布式和异步编程?
    Python是一种高级编程语言,因其简单易学且功能强大而备受欢迎。随着Python的流行,对Python IDE的需求也越来越大。Python IDE是一种集成开发环境,可以帮助开发人员更轻松地编写、调试和运行Python代码。但是,对于需...
    99+
    2023-07-10
    ide 分布式 异步编程
  • 分布式和异步编程:如何在Python IDE中实现?
    随着计算机技术的不断发展,分布式和异步编程越来越被广泛应用于各种领域。Python 作为一门高效的编程语言,也提供了丰富的工具和库来支持分布式和异步编程。在本文中,我们将介绍如何在 Python IDE 中实现分布式和异步编程,并给出相应...
    99+
    2023-07-10
    ide 分布式 异步编程
  • Python IDE中实现分布式和异步编程的秘诀!
    Python是一种非常流行的编程语言,它具有简单易学、高效快速的特点,因此备受开发者的青睐。Python的生态系统非常丰富,提供了许多工具和框架来帮助开发者更加高效地编写代码。其中,Python的IDE是非常重要的一个工具,它可以帮助开发者...
    99+
    2023-07-10
    ide 分布式 异步编程
  • Python 异步编程如何优化分布式系统的性能?
    在分布式系统中,网络通信是最耗费时间和资源的部分。传统的同步编程模式会造成程序阻塞,等待网络返回结果,导致程序的性能和响应时间受到很大的影响。而异步编程则可以让程序在等待网络返回结果时可以继续执行其他任务,从而提高程序的性能和响应速度。P...
    99+
    2023-10-15
    异步编程 编程算法 分布式
  • ASP中如何实现分布式异步编程?
    在当今互联网时代,分布式异步编程已经成为了一个必备的技术。它可以帮助我们实现高并发、高性能的应用程序。那么,在ASP中如何实现分布式异步编程呢?本文将带你一步步了解。 异步编程的概念 异步编程是指,程序在执行某些操作时,不需要等待该操...
    99+
    2023-10-19
    分布式 异步编程 索引
  • PHP分布式异步编程:如何在Linux系统中实现分布式计算?
    PHP是一种流行的服务器端编程语言,广泛应用于Web开发。但是,PHP也可以用于分布式计算,通过将计算任务分配给多台计算机来加速计算。本文将介绍如何在Linux系统中使用PHP进行分布式异步编程。 一、什么是分布式计算? 分布式计算是一种...
    99+
    2023-11-07
    分布式 异步编程 linux
  • python中使用Celery容联云异步发送验证码功能
    目录1.celery异步消息队列介绍 celery应用举例 Celery有以下优点Celery 特性 2.工作原理 ***** Celery 扮演生产者和消费者的角色 思维导图3.异...
    99+
    2022-11-12
  • Go语言是否适合分布式异步编程?
    随着互联网应用的不断发展,分布式系统的重要性越来越受到重视。而异步编程则是分布式系统中不可或缺的一部分。那么,Go语言是否适合分布式异步编程呢?本文将从以下三个方面进行探讨: Go语言的协程模型 Go语言采用协程模型来实现并发,这种模...
    99+
    2023-10-05
    分布式 异步编程 自然语言处理
  • 异步编程和分布式系统:Python如何应对这些挑战?
    异步编程和分布式系统:Python如何应对这些挑战? 随着互联网的发展,我们的应用程序越来越依赖于分布式系统。这些系统需要处理大量的并发请求,并且需要在多个节点之间进行数据交换和协调。同时,异步编程也成为了越来越流行的编程模型,它可以极大地...
    99+
    2023-09-20
    bash 异步编程 分布式
  • Python IDE的新趋势:分布式和异步编程的完美结合!
    Python已经成为最受欢迎的编程语言之一,它在不同领域都有广泛的应用。而Python IDE则是Python编程的重要组成部分。随着分布式和异步编程技术的日益成熟,Python IDE也在不断地发展和演化。本文将为您介绍Python I...
    99+
    2023-07-10
    ide 分布式 异步编程
  • Java在分布式系统中的异步编程实践?
    Java在分布式系统中的异步编程实践 随着分布式系统的快速发展,异步编程已经成为了分布式系统中非常重要的一部分。Java作为一种广泛应用于分布式系统的编程语言,其异步编程技术也备受关注。在本文中,我们将探讨Java在分布式系统中的异步编程实...
    99+
    2023-10-15
    分布式 linux 异步编程
  • PHP异步编程:你真的知道分布式LOAD吗?
    在当今的互联网时代,高并发、高负载已经成为了各类Web应用程序所必须面对的挑战,而PHP作为目前应用最广泛的Web编程语言之一,其异步编程技术也成为了开发高负载应用的关键技术之一。本文将为您介绍PHP异步编程技术中的分布式LOAD。 一、...
    99+
    2023-10-16
    异步编程 分布式 load
  • 分布式系统中Java异步编程的实践经验分享?
    分布式系统中Java异步编程的实践经验分享 在分布式系统中,异步编程是一种非常重要的编程方式。Java语言作为一门非常流行的编程语言,也提供了非常强大的异步编程支持。本文将分享一些Java异步编程的实践经验,帮助读者更好地理解和使用异步编程...
    99+
    2023-10-15
    分布式 linux 异步编程
  • 分布式系统中Java异步编程的优化技巧?
    分布式系统中Java异步编程的优化技巧 随着互联网技术的发展,分布式系统的使用越来越广泛,而Java作为一种流行的编程语言,在分布式系统中也扮演着重要的角色。Java异步编程技术可以帮助开发人员优化分布式系统的性能和响应速度,因此我们需要了...
    99+
    2023-10-15
    分布式 linux 异步编程
  • PHP异步编程:如何应对分布式LOAD的挑战?
    随着互联网的快速发展,分布式系统已经成为了互联网应用的主流架构之一。然而,分布式系统的高并发、高负载等问题也随之而来,这些问题给开发人员带来了很大的挑战。在这篇文章中,我们将探讨PHP异步编程在分布式LOAD下的挑战,并提供一些解决方案。...
    99+
    2023-10-16
    异步编程 分布式 load
  • PHP分布式异步编程:跨平台开发的利器
    随着互联网技术的不断发展,分布式系统逐渐成为了一种趋势,而异步编程则是分布式系统中不可或缺的一环。在这个大环境下,PHP作为一种常用的编程语言,也逐渐发展出了一套完整的分布式异步编程体系。本文将介绍PHP分布式异步编程的基本概念、优势以及...
    99+
    2023-11-07
    分布式 异步编程 linux
  • Java异步编程:如何在分布式系统中实现?
    随着分布式系统的普及,异步编程成为了必不可少的一部分。Java作为一种广泛使用的编程语言,也在异步编程方面提供了很多支持。本文将介绍Java异步编程的基础知识,并探讨如何在分布式系统中实现异步编程。 一、异步编程基础 异步编程是指在执行某...
    99+
    2023-07-31
    异步编程 分布式 关键字
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作