• celery_01 _celery安装启动


    简介:
    celery是一个分布式队列的管理工具,提供了快速管理和操作分布式任务队列的一些方法的框架

    特点:
    1、celery易于使用和维护,不需要进行很复杂的配置,简单的celery例子:

    from celery import Celery
    app = Celery('hello', broker='redis://:password@ip:port/database')
    
    @app.task
    def hello():
    return 'hello world'

    2、高可靠性:程序和客户端具有失去连接进行重新尝试连接的特性,一些中间键有HA特性(hadoop主节点热备),常用的中间键有redis、 RabbitMQ 等
    3、速度快:单一的一个celery进程可以在一分钟内执行数百万个任务
    4、灵活性高:几乎所有的celery类都可以被继承,或者被调用;可使用框架包括: implementations, serializers, compression schemes, logging, schedulers, consumers, producers, broker transports等

    支持的框架和数据库等:
    1、信息传输:RabbitMQ, Redis, Amazon SQS
    2、并发框架:Prefork, Eventlet, gevent, single threaded (solo)
    3、结果存储:AMQP, Redis;memcached;SQLAlchemy, Django ORM;Apache Cassandra, IronCache, Elasticsearch
    4、序列化格式:pickle, json, yaml, msgpack;zlib, bzip2 compression;Cryptographic message signing

    支持的一些框架集合:

    以上的这些框架并不是必须,但是这些框架能使开发更加的方便,并且有些框架提供了一些钩子用来连接和关闭数据库等

    安装:
    支持pip安装,一键搞定:pip install -U Celery


    安装依赖:
    当用pip安装celery报错的时候,可以试一下
    $ pip install "celery[librabbitmq]"
    $ pip install "celery[librabbitmq,redis,auth,msgpack]"


    使用redis作为中间人:

    安装:
    使用Redis作为Broker时,再安装一个celery-with-redis
    pip install -U "celery[redis]"

    配置redis的地址:
    参数的顺序是固定的
    redis://:password@hostname:port/db_number
    例如:
    app.conf.broker_url ='redis://:password@ip:port/database'

    设置超时时间:
    两个响应之间的超时时间,单位s;redis默认的超时时间是3600s
    例如:
    app.conf.broker_transport_options = {'visibility_timeout': 3600} # 1 hour.

    结果数据存储:
    如果想把下载的数据同样存储在redis中,需要下面的配置:
    app.conf.result_backend='redis://:password@ip:port/database'

    账户设置:
    播放的信息默认情况会被所有的虚拟主机接收,用下面得参数可以设置播放信息只会被运行中的用户接收
    app.conf.broker_transport_options = {'fanout_prefix': True}


    这样设置之后就能与没有进行该设置和老版本的worker进行通信了

    启动:

    celery -A server worker --loglevel=info

    server出现如下错误

    办法:设置如下属性
    export C_FORCE_ROOT="true"
    再次启动:
    celery -A server worker --loglevel=info

  • 相关阅读:
    java 集合框架
    java 迭代器遍历List Set Map
    java 容器 List
    OpenLayer4实现卷帘效果
    python结合百度api进行地理编码和爬取POI点
    ArcGIS API For JS空间参考系的浅析
    OpenLayer4加载svg
    OpenLayer3动态点线和动态点的扩散实现
    LeaFlet学习之地图文字标注
    装饰器设计模式
  • 原文地址:https://www.cnblogs.com/xbkp/p/6668194.html
Copyright © 2020-2023  润新知