ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

celery分布式异步任务框架

2022-07-14 19:00:43  阅读:151  来源: 互联网

标签:异步 --- 服务 redis celery 任务 分布式


目录

1 celery介绍架构和安装

# celery:芹菜,分布式异步任务框架
# 注意:Celery is a project with minimal funding, so we don’t support Microsoft Windows. Please don’t open any issues related to that platform.  ---》使用别的方式可以运行在win上

# celery可以做的事:
	1 异步执行:解决耗时任务,将耗时操作任务提交给Celery去异步执行,比如发送短信/邮件、消息推送、音视频处理等等
	2 延迟执行:解决延迟任务
	3 定时执行:解决周期(周期)任务,比如每天数据统计
    
# celery的概念:celery是独立的服务,跟其它框架无关,需要单独启动
	"""
    1)可以不依赖任何服务器,通过自身命令,启动服务
    2)celery服务为为其他项目服务提供异步解决任务需求的
    注:会有两个服务同时运行,一个是项目服务,一个是celery服务,项目服务将需要异步处理的任务交给celery服务,celery就会在需要时异步完成项目的需求

    人是一个独立运行的服务 | 医院也是一个独立运行的服务
        正常情况下,人可以完成所有健康情况的动作,不需要医院的参与;但当人生病时,就会被医院接收,解决人生病问题
        人生病的处理方案交给医院来解决,所有人不生病时,医院独立运行,人生病时,医院就来解决人生病的需求
    """
	
 # celery的架构
	# 1 消息中间件broker---》redis,rabbitmq
    # 2 任务执行单元worker--》celery的进程
    # 3 结果存储(backend):Task result store---》redis,mysql,rabbitmq。。。

img

2 celery基本使用

# pip install celery

# 第一步:实例化得到app对象,注册任务
    from celery import Celery
    backend='redis://127.0.0.1:6379/1' # 结果存储
    broker='redis://127.0.0.1:6379/2'  # 消息中间件
    app=Celery('main',broker=broker,backend=backend)

    # 注册任务 --->变成了celery的任务了
    @app.task
    def add(a,b):
        import time
        time.sleep(2)
        return a+b
    
# 第二步:提交任务---第三方来提交
    from main import add
    res=add.delay(4,5)  # 把任务提交到消息中间件中
    
# 第三步:使用celery 来执行任务:启动worker
    # win上:装eventlet
    celery -A celery模块名 worker -l info -P eventlet
    # linux、mac上
     celery -A celery模块名 worker -l info 
 
# 第四步:查看任务执行结果---》手动去redis中看

标签:异步,---,服务,redis,celery,任务,分布式
来源: https://www.cnblogs.com/williama/p/16478964.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有