分布式任务队列:Celery

一、Celery 安装与应用

关于 Celery 的内容,先依次看如下两篇文章,让你有个了解:

http://blog.csdn.net/happyanger6/article/details/51404837

https://www.liaoxuefeng.com/article/00137760323922531a8582c08814fb09e9930cede45e3cc000

1、安装 Celery 和 Redis

pip install celery    # 这里我的 python 版本是 python2.7 ,如果是 2.6 的版本,请使用 pip install celery==3.0 来安装pip install redis     # redis 作为中间人,用于接收和发送消息

2、编写一个 celery 应用程序,用来处理任务

[root@localhost ~]# cat task.py
#!/usr/bin/env python
#-*- coding: utf8 -*-

from celery import Celery
app = Celery("task", broker="redis://127.0.0.1:6379/5", backend="redis://127.0.0.1:6379/6")      # 启动一个Celery实例,第一个参数是本模块的名字,第二个参数用于指定中间人的URL,第三个参数用于存储任务的处理结果,5和6表示使用redis的第五和第六个库

@app.task          # 添加一个程序,这个程序用来处理用户发过来的任务
def add(x, y):     # 定义程序,这里我就定义一个加法运算的程序
    return x+y

3、启动 Celery 处理任务

[[email protected] ~]# celery -A task worker --loglevel=info    # -A参数用于指定程序,worker表示在后台运行,--loglevel表示运行的日志等级

4、发送任务给 Celery 进行处理

In [1]: from task import add

In [2]: add.delay(2, 3)    # 相当于执行了add()函数,执行后的结果只能在celery控制台看到
Out[2]: <AsyncResult: 6e5b23d6-f3ba-48ed-8007-d41520830410>

In [3]: add.delay(5, 10)
Out[3]: <AsyncResult: f5e51094-af6c-447c-ae6e-e07b02ae6983>

二、Celery 多实例

时间: 2024-11-01 21:29:45

分布式任务队列:Celery的相关文章

分布式任务队列celery用法详解

celery基础介绍:这个图我们可以看出,celery基本结构也就是三部分1 第一部分 broker也就是中间件消息队列,作用就是用来接收应用的请求这一部分常见玩法可以是rabbitmq和redis等2 第二部分 worker 也就是工作队列 也就是celery本身的任务队列服务,一般情况下大型的生产应用我们会结合supervisor来管理这么多的worker3 第三部分 result 存储,就是把执行的结果,状态等信息进行存储,常规用法我们可以用rabbitmq redis,mysql,mon

Celery分布式任务队列快速入门

Celery介绍 Celery是基于Python开发的分布式任务队列.它支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度. 如果业务场景中需要用到异步任务,就可以考虑使用celery, 举几个实例场景中可用的例子: 你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回 一个任务ID,你过一段时间只需要拿着这个任务id就可以拿到任务执行结果, 在任务执行ing进行时,你可以继续做其它的事情. 你想做一个定时任务,比如每天检测一下你们所有客

Celery分布式任务队列的认识和基本操作

一.简单认识 Celery是由Python开发.简单.灵活.可靠的分布式任务队列,其本质是生产者消费者模型,生产者发送任务到消息队列,消费者负责处理任务.Celery侧重于实时操作,但对调度支持也很好,其每天可以处理数以百万计的任务. 它的特点有: 简单:熟悉了它的流程后,配置使用简单: 高可用:任务执行失败或执行过程中发生连接中断,Celery会自动重新执行任务: 快速:一个单进程的Celery每分钟可处理上百万个任务: 灵活:Celery的各个组件都可以被扩展及自定制: 应用场景举例: 1.

异步任务队列Celery在Django中的使用

前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队列框架,鉴于网上关于Celery和Django结合的文档较少,大部分也只是粗粗介绍了大概的流程,在实践过程中还是遇到了不少坑,希望记录下来帮助有需要的朋友. 一.Django中的异步请求 Django Web中从一个http请求发起,到获得响应返回html页面的流程大致如下:http请求发起 --

Python 并行分布式框架 Celery

Celery 简介 除了redis,还可以使用另外一个神器---Celery.Celery是一个异步任务的调度工具. Celery 是 Distributed Task Queue,分布式任务队列,分布式决定了可以有多个 worker 的存在,队列表示其是异步操作,即存在一个产生任务提出需求的工头,和一群等着被分配工作的码农. 在 Python 中定义 Celery 的时候,我们要引入 Broker,中文翻译过来就是"中间人"的意思,在这里 Broker 起到一个中间人的角色.在工头提

【转】Python 并行分布式框架 Celery

原文链接:https://blog.csdn.net/freeking101/article/details/74707619 Celery 官网:http://www.celeryproject.org/ Celery 官方文档英文版:http://docs.celeryproject.org/en/latest/index.html Celery 官方文档中文版:http://docs.jinkan.org/docs/celery/ celery配置:http://docs.jinkan.o

Celery 分布式任务队列快速入门

本节内容 Celery介绍和基本使用 启用多个workers Celery 定时任务 与django结合 通过django配置celery periodic task 一.Celery介绍和基本使用 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery, 举几个实例场景中可用的例子: 你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返

Celery 分布式任务队列入门

一.Celery介绍和基本使用 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery, 举几个实例场景中可用的例子: 你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回 一个任务ID,你过一段时间只需要拿着这个任务id就可以拿到任务执行结果, 在任务执行ing进行时,你可以继续做其它的事情. 你想做一个定时任务,比如每天检测一下你们

Celery分布式任务队列

1.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成. 消息中间件 Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成.包括,RabbitMQ, Redis等等 任务执行单元 Worker是Celery提供