美文网首页
celery4.2使用记录

celery4.2使用记录

作者: wowshiwoniu | 来源:发表于2018-07-22 01:33 被阅读0次

    最近因工作需要,使用了celery,一直没有时间总结,抽空记录celery在学习应用中的一些问题

    1、安装

    创建python虚拟环境,安装如下包:

    pip install Django==1.10.8
    pip install celery==4.2.0
    pip install redis==2.10.6
    

    2、celery快速入门引导

    4.2.0 版本 Getting Started 官方文档戳我

    英语还是需要能大概读懂的,读不懂的语句只能依靠翻译咯,坚持看多了英文文档,其实还是对阅读理解很有帮助的,毕竟最新的文档都是英文的。

    说道英语底子薄,安利一把,推荐一款翻译利器,谷歌浏览器插件划词翻译,选中单词或句子自动翻译,很棒的小公举。如果访问不了,百度一个离线安装包吧,网络原因,折腾是必经之路啊。

    • Celery介绍
      Celery 是一个简单、灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具。它是一个专注于实时处理的任务队列,同时也支持任务调度。
    85822734.jpg
    • Celery 主要包含以下几个模块:

      • 任务模块 Task
        包含异步任务和定时任务。其中,异步任务通常在业务逻辑中被触发并发往任务队列,而定时任务由 Celery Beat 进程周期性地将任务发往任务队列。

      • 消息中间件 Broker
        Broker,即为任务调度队列,接收任务生产者发来的消息(即任务),将任务存入队列。Celery 本身不提供队列服务,官方推荐使用 RabbitMQ 和 Redis 等。

      • 任务执行单元 Worker
        Worker 是执行任务的处理单元,它实时监控消息队列,获取队列中调度的任务,并执行它。

      • 任务结果存储 Backend
        Backend 用于存储任务的执行结果,以供查询。同消息中间件一样,存储也可使用 RabbitMQ, Redis 和 MongoDB 等。

    • 使用 Celery 实现异步任务主要包含三个步骤:

      1. 创建一个 Celery 实例
      2. 启动 Celery Worker
      3. 应用程序调用异步任务

    下面是一个最简单的应用:tasks.py

    from celery import Celery
    broker = 'redis//127.0.0.1:6379/0'
    backend = 'redis//127.0.0.1:6379/0'
    # broker 存储生产者消息
    # backend 存储任务消息结果(不需要结果存储可以不配置)
    app = Celery('hello', broker=broker, backend=backend)
    
    @app.task
    def hello():
        return 'hello world'
    

    启动worker进程,在文件根目录下运行:

    celery -A tasks worker --loglevel=info
    

    这样最简单的celery就启动了,我们可以用来测试一些celery的特性,熟悉它的功能,参照文档进一步的深入学习,在tasks.py目录下启动python终端。

    >>> from tasks import hello
    >>> result = hello.delay()
    >>> result.ready()
    False
    >>> result.ready()
    True
    >>> result.get()
    'hello world'
    

    以上这个只是用来快速了解学习使用,具体的还需要参照文档学习。


    在使用过程中,还是碰到了许多问题的,关于路径、命名、配置等,待总结记录。。。

    相关文章

      网友评论

          本文标题:celery4.2使用记录

          本文链接:https://www.haomeiwen.com/subject/iuokmftx.html