1.环境安装配置
celery == 4.3.0
redis
eventlet==0.25.1 ==> pip install eventlet (windows环境必须安装)
1.worker部分负责任务的处理,即工作进程(我的理解工作进程就是你写的python代码,当然还包括python调用系统工具功能)
2.broker部分负责任务消息的分发以及任务结果的存储,这部分任务主要由中间数据存储系统完成,比如消息队列服务器RabbitMQ、redis、
3.Celery主类,进行任务最开始的指派与执行控制,他可以是单独的python脚本,也可以和其他程序结合,应用到django或者flask等web框架里面以及你能想到的任何应用
2.目录结构
创建easy_task.py
# -*- coding: utf-8 -*-
# 使用celery
import time
from celery import Celery
import redis
# 创建一个Celery类的实例对象
app = Celery('celery_tasks.easy_task', broker='redis://127.0.0.1:6379/15')
@app.task
def add(a, b):
count = a + b
print('任务函数正在执行....')
time.sleep(1)
return
创建doWorker.py
import time
from celery_tasks.easy_task import add
def notity(a, b):
# result = a + b
result = add.delay(a, b)
return result
if __name__ == '__main__':
for i in range(5):
time.sleep(1)
result = notity(i, 5)
print(result)
3.使用celery调度任务
1)进入虚拟环境启动celery
celery -A celery_tasks.easy_task worker -l info -P eventlet
2)执行任务,运行doWorker.py 运行效果如下