python学习—Day47—celery异步分布式(一)

celery异步分布式

Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery


Celery有以下优点:

  • 简单:一单熟悉了celery的工作流程后,配置和使用还是比较简单的
  • 高可用:当任务执行失败或执行过程中发生连接中断,celery 会自动尝试重新执行任务
  • 快速:一个单进程的celery每分钟可处理上百万个任务
  • 灵活: 几乎celery的各个组件都可以被扩展及自定制


celery环境包下载安装,其中指定了阿里镜像,这样下载速度会快

pip install -i http://mirrors.aliyun.com/pypi/simple celery
pip install -i http://mirrors.aliyun.com/pypi/simple celery-with-redis
 
 
  • 1
  • 2

celery由5个主要组件组成: 
producer: 任务发布者, 通过调用API向celery发布任务的程序 
celery beat: 任务调度, 根据配置文件发布定时任务 
worker: 实际执行任务的程序 
broker: 接受任务消息,存入队列再按顺序分发给worker执行 
backend: 存储结果的服务器

#coding=utf-8

from celery import *

broker = 'redis://127.0.0.1:6379/5' #消息存储数据存储在仓库5

backend = 'redis://127.0.0.1:6379/6' #消息执行后的结果包括函数返回值的数据存储在仓库6

app = Celery('test1', broker=broker,backend=backend)


app.conf.update(

CELERY_TASK_SERIALIZER='json', #任务消息信息保存为json格式

CELERY_ACCEPT_CONTENT=['json'],

CELERY_RESULT_SERIALIZER='json' # 结果信息保存为json格式)


@app.task

def add(a, b):

return a+b


借鉴内容:http://blog.csdn.net/bojie5744/article/details/52965668

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值