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

来源:互联网 发布:js去掉disabled属性 编辑:程序博客网 时间:2024/05/21 22:44

celery异步分布式

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


Celery有以下优点:

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


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

pip install -i http://mirrors.aliyun.com/pypi/simple celerypip 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

defadd(a, b):

return a+b


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

原创粉丝点击