码迷,mamicode.com
首页 > 其他好文 > 详细

Celery 快速入门

时间:2014-07-07 11:23:15      阅读:566      评论:0      收藏:0      [点我收藏+]

标签:http   使用   os   for   工作   io   

Celery 快速入门

任务队列

任务队列用于分发工作给不同线程或机器。

Celery通过消息传递

支持多个workers和brokers。提供高可用和水平扩展性。

用Python写的

优点

  • 简单
  • 高可用
  • 易扩展

支持

  • Brokers

    • RabbitMQ, Redis
    • MongoDB, ZeroMQ
    • CouchDB, SQLAlchemy
    • Django ORM, Amazon SQS,
    • ...
  • Result Stores

    • AMQP, Redis
    • memcached, MongoDB
    • SQLAlchemy, Django ORM
    • Apache Cassandra
  • Concurrency

    • prefork
    • Eventlet, gevent
    • threads/single threaded
  • Serialization

    • pickle, json, yaml, msgpack.
    • zlib, bzip2 compression.
    • Cryptographic message signing

安装

pip install celery

pip install beanstalkc

选择Broker

$ sudo apt-get install rabbitmq-server

设置Broker

$ sudo rabbitmqctl add_user myuser mypassword

$ sudo rabbitmqctl add_vhost myvhost

$ sudo rabbitmqctl set_permissions -p myvhost myuser ".*" ".*" ".*"

应用

首先你要创建Celery实例。

from celery import Celery

BROKER_URL = ‘amqp://guest:guest@localhost:5672//‘

app = Celery(‘tasks‘, broker=BROKER_URL)

@app.task
def add(x, y):
    return x + y

执行celery worker服务器

$ celery -A tasks worker --loglevel=info

通过使用supervisord守护进程执行

调用task

>>> from tasks import add
>>> add.delay(4, 4)

取得结果

app = Celery(‘tasks‘, backend=‘amqp‘, broker=‘amqp://‘)


>>> result = add.delay(4, 4)
>>> result.ready()
True
>>> result.get(timeout=1)
8

More

http://celeryproject.org/

Celery 快速入门,布布扣,bubuko.com

Celery 快速入门

标签:http   使用   os   for   工作   io   

原文地址:http://www.cnblogs.com/erhuabushuo/p/3820331.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!