1、优点

    • 高可用

    如果出现丢失连接或连接失败,职程(Worker)和客户端会自动重试,并且中间人通过 主/主 主/从 的方式来进行提高可用性。

    • 快速

    单个 Celery 进行每分钟可以处理数以百万的任务,而且延迟仅为亚毫秒(使用 RabbitMQ、 librabbitmq 在优化过后)。

    • 灵活

    Celery 的每个部分几乎都可以自定义扩展和单独使用,例如自定义连接池、序列化方式、压缩方式、日志记录方式、任务调度、生产者、消费者、中间人(Broker)等。

    2、支持
    中间件
    RabbitMQ
    Redis
    Amazon SQS
    结果存储
    AMQP、 Redis
    Memcached
    SQLAlchemy、Django ORM
    Apache Cassandra、Elasticsearch
    并发
    prefork (multiprocessing)
    Eventletgevent
    solo (single threaded)
    序列化
    pickle、json、yaml、msgpack
    zlib、bzip2 compression
    Cryptographic message signing

    3、功能

    • 监控

    可以针对整个流程进行监控,内置的工具或可以实时说明当前集群的概况。

    • 调度

    可以通过调度功能在一段时间内指定任务的执行时间 datetime,也可以根据简单每隔一段时间进行执行重复的任务,支持分钟、小时、星期几,也支持某一天或某一年的Crontab表达式。更多……

    • 工作流

    可以通过“canvas“进行组成工作流,其中包含分组、链接、分块等等。
    简单和复杂的工作流程可以使用一组“canvas“组成,其中包含分组、链接、分块等。更多……

    • 资源(内存)泄漏保护

    —max-tasks-per-child 参数适用于可能会出现资源泄漏(例如:内存泄漏)的任务。更多……

    • 时间和速率的限制

    您可以控制每秒/分钟/小时执行任务的次数,或者任务执行的最长时间,也将这些设置为默认值,针对特定的任务或程序进行定制化配置。更多……

    • 自定义组件

    开发者可以定制化每一个职程(Worker)以及额外的组件。职程(Worker)是用 “bootsteps” 构建的-一个依赖关系图,可以对职程(Worker)的内部进行细粒度控制。