43. Python celery简介

本文介绍Celery作为Python的异步任务调度模块的基本概念及其使用方法。通过配置Redis作为Broker,实现了一个简单的加法运算任务示例,展示了如何创建Celery应用、定义任务以及如何调用并获取任务结果。

Celery异步分布式

什么是celery?

他是一个python开发的异步分布式任务调度模块

celery本身不提供消息服务,使用第三方服务,也就是broker来传递任务,目前支持rabbitmq,redis,数据库等等。

我们使用redis

连接URL的格式为:

1
    redis://:password@hostname:port/db_number

例如:

1
    BROKER_URL='redis://localhost:6379/0'


过程如图示

image.png

在python里面如果用到异步分布式,首先想到celery

安装celery

1
2
pip install celery
pip install redis      #之前讲过

在服务器上安装redis服务器,并启动redis

第一个简单的例子:

1
2
3
4
5
6
7
8
9
10
11
[root@localhost celery]# cat lili.py
#/usr/bin/env python
#-*- coding:utf-8 -*-
from celery import Celery
broker="redis://192.168.48.131:6379/5"
backend="redis://192.168.48.131:6379/6"
app = Celery("lili", broker=broker, backend=backend)
 
@app.task
def add(x, y):
    return x+y

启动:

1
# celery -A lili worker -l info

调用:

1
2
3
4
5
6
7
8
9
10
11
12
13
# cat demo2.py
#!/usr/bin/python
#-*- coding:utf-8 -*-
from  lili  import  add
import time
= add.delay(1020)
print (a)          ##返回异步分布式的对象
print (type(a))
time.sleep(1)
print (a.result)         ##返回调用的值
print (a.status)      ##返回状态
print (a.get(timeout=3))        ##获得值
print (a.ready())      #是否处理,返回 True 为处理完成




本文转自 听丶飞鸟说 51CTO博客,原文链接:http://blog.51cto.com/286577399/2052240
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值