当前位置: 代码迷 >> 综合 >> 爬虫系列20.Celery - 分布式任务队列
  详细解决方案

爬虫系列20.Celery - 分布式任务队列

热度:56   发布时间:2024-01-04 14:18:27.0
celery(芹菜)是一个异步任务队列/基于分布式消息传递的作业队列。它侧重于实时操作,但对调度支持也很好。
celery用于生产系统每天处理数以百万计的任务。
celery是用Python编写的,但该协议可以在任何语言实现。它也可以与其他语言通过webhooks实现。
建议的消息代理RabbitMQ的,但提供有限支持Redis, Beanstalk, MongoDB, CouchDB, ,和数据库(使用SQLAlchemy的或Django的
ORM) 。
celery是易于集成Django, Pylons and Flask,使用 django-celery, celery-pylons and Flask-Celery 附加包即可。
最简单的实现应用
from celery import Celery
app = Celery('hello',broker='amqp://guest@localhost//')
@app.task
def hello():
return 'hello world'
特性:
1.高可用性,若连接丢失,子程和客户端会自动重试,并且一些中间人通过 主、主 或主/从的方式复制来提高可用性
2.快速,单个Celery进程每分钟可以处理数以百万计的任务,而且往返延迟很短。
3.灵活