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???
如果您需要相关功能的代码定制化开发,可以留言私信作者;
(✿◡‿◡)
感谢各位大佬童鞋们的支持!
( ´ ▽´ )ノ ( ´ ▽´)っ!!!