Flask-celery

2019-01-14  本文已影响0人  陈small末

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是工程名称
上一篇 下一篇

猜你喜欢

热点阅读