美文网首页我爱编程
python 学习笔记(分布式任务调度模块 Celery)

python 学习笔记(分布式任务调度模块 Celery)

作者: 我是帅气的石头 | 来源:发表于2018-05-27 23:21 被阅读0次

    Celery是Python开发的分布式任务调度模块
    Celery本身不含消息服务,它使用第三方消息服务来传递任务,目前,Celery支持的消息服务有RabbitMQ、Redis甚至是数据库,当然Redis应该是最佳选择。
    Celery 专注于实时任务处理,支持任务调度。

    理解

    image.png

    想让 Celery 运行起来我们要明白几个概念

    (1)Brokers

    brokers 中文意思为中间人,在这里就是指任务队列本身,Celery 扮演生产者和消费者的角色,brokers 就是生产者和消费者存放/拿取产品的地方(队列)

    常见的 brokers 有 rabbitmq、redis、Zookeeper 等

    (2)Result Stores / backend

    顾名思义就是结果储存的地方,队列中的任务运行完后的结果或者状态需要被任务发送者知道,那么就需要一个地方储存这些结果,就是 Result Stores 了

    常见的 backend 有 redis、Memcached 甚至常用的数据都可以。

    (3)Workers

    就是 Celery 中的工作者,类似与生产/消费模型中的消费者,其从队列中取出任务并执行

    (4)Tasks

    就是我们想在队列中进行的任务咯,一般由用户、触发器或其他操作将任务入队,然后交由 workers 进行处理。

    使用

    安装

    安装celery
    pip install celery
    pip install redis
    

    例子

    在服务器上安装redis服务器,并启动redis
    第一个简单的例子:
    [root@localhost celery]# cat ling.py
    #/usr/bin/env python
    #-*- coding:utf-8 -*-
    from celery import Celery
    broker="redis://192.168.48.131:6379/5"
    backend="redis://192.168.48.131:6379/6"
    app = Celery("ling", broker=broker, backend=backend)
    
    @app.task
    def add(x, y):
    return x+y
    

    相关文章

      网友评论

        本文标题:python 学习笔记(分布式任务调度模块 Celery)

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