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是工程名称
     
  • 相关阅读:
    Day01
    微前端技术框架qiankun技术分享
    终于有人把O2O、C2C、B2B、B2C的区别讲透了
    Electron-Vue项目使用Element的el-table组件不显示
    monaco editor各种功能实现总结
    electron-vue项目使用elementUI组件报错$attrs is readonly
    monaco-editor 使用总结
    闲谈Monaco Editor-基本使用
    【软件】MATHTYPE破解记
    C# EF
  • 原文地址:https://www.cnblogs.com/gugubeng/p/9722404.html
Copyright © 2011-2022 走看看