1、简介

Celery 是一个简单、灵活且可靠的分布式系统,用于 处理大量消息,同时为操作提供 维护此类系统所需的工具。专注于实时处理的任务队列,同时也 支持任务调度。 在这里插入图片描述

2、入门示例(celery)

2.1 新建任务task

  • tasks.py
from celery import Celery

#消息中间件(使用的redis)
broker = 'redis://localhost:6379/1'
#结果存储(使用的redis)
backend = 'redis://localhost:6379/2'
#实例化Celery对象
app = Celery(
    'celeryDemo',
    broker=broker,
    backend=backend
)

@app.task()
def add(x,y):
    print('task: add')
    return x+y

2.2 新建应用app

  • app.py
from tasks import add

if __name__ == '__main__':
    print('task start....')
    result = add.delay(2,3)
    print('task end....')
    print(result)

或者

#coding=utf-8
from tasks import add

if __name__ == '__main__':

    # delay与apply_async生成的都是AsyncResult对象
    res = add.apply_async((123, 100))
    if res.successful():
        result = res.get()
        print(result)
    elif res.failed():
        print('任务失败')
    elif res.status == 'PENDING':
        print('任务等待中被执行')
    elif res.status == 'RETRY':
        print('任务异常后正在重试')
    elif res.status == 'STARTED':
        print('任务已经开始被执行')

2.3 执行命令

(1)运行redis服务器: 命令行执行如下程序。

redis-server.exe

在这里插入图片描述 在这里插入图片描述 (2)运行worker端:

##常规启动Worker 
#celery -A tasks worker --loglevel=INFO 

##Windows下启动Worker 
#pip install eventlet 
#celery -A tasks worker --loglevel=INFO -P eventlet 
#celery -A tasks worker -l info -P eventlet  -c 10

celery -A tasks worker -l info -P threads

在这里插入图片描述

(3)运行 app.py文件:

python app.py

在这里插入图片描述 在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭ 如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O??? 如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡) 感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!! 在这里插入图片描述