zoukankan      html  css  js  c++  java
  • celery (分布式系统)

    celery

    介绍

    Celery - 分布式任务队列. Celery 是一个简单、灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具。
    它是一个专注于实时处理的任务队列,同时也支持任务调度.
    Celery是基于Python开发的一个分布式任务队列框架,支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度.
     

    安装celery

    创建虚拟环境
        mkvirtualenv celeryenv
    使用pip安装
        pip install celery
     

    使用celery

    创建python工程, 然后新建tasks.py文件, 写入以下代码
    from celery import Celery
    # 创建celery对象,设置任务队列使用redis
    app = Celery('tasks', broker='redis://localhost:6379')
    # 创建任务
    @app.task
    def add(a, b):    
        time.sleep(5)    
        n = a + b    
        print(n)    
        return n
    if __name__ == '__main__':
        # add(10, 5)    
        # 调用任务
        add.delay(10, 5)
        print('程序执行结束')
        
     

    启动celery服务

    celery -A tasks worker --loglevel=info
     

    redis操作:

    安装redis
        pip install redis
    启动redis服务
        redis-server

    Flask中使用celery

    在之前创建的虚拟环境celeryenv中安装flask
    安装flask
        pip install flask
     
    创建FlaskProject.py文件,并写入以下代码
    from flask import Flask
    from tasks import send_email
    app = Flask(__name__)
    @app.route('/')
    def index():
        send_email.delay('111@qq.com')
        return "激活邮件已发送, 请注意查收"
    if __name__ == '__main__':
        app.run()
     
    在之前的tasks.py文件, 添加以下代码
    @app.task
    def send_email(receive_addr):
        time.sleep(7)
        print(receive_addr)
        
     

    Django中使用celery

    安装celery
    pip install celery
     
    安装redis
    pip install redis
     
    安装sqlalchemy
    pip install sqlalchemy
     
    启动celery服务
    celery -A proj worker -l info
    注意: proj是工程名称
     
  • 相关阅读:
    strrchr
    tcpdump的源码分析
    C语言中字符串
    setsockopt、getsockopt详细介绍(转)
    linux下IPC通信
    setsockopt()用法(参数详细说明)(转)
    判断一个数是否为2的n次幂
    mysql 5.7.14 安装配置方法图文教程(转)
    JAVA中的protected(详解),以及和clone()方法有关的一些问题
    ASP.NET MVC 在控制器中接收视图表单POST过来的数据方法
  • 原文地址:https://www.cnblogs.com/gugubeng/p/9722404.html
Copyright © 2011-2022 走看看