7,知识拾遗-Wusir-crm项目-celery初识-celery案例

Posted dlh-lmsh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7,知识拾遗-Wusir-crm项目-celery初识-celery案例相关的知识,希望对你有一定的参考价值。

7,知识拾遗-Wusir-crm项目-celery初识-celery案例

参考博客:

https://www.cnblogs.com/wupeiqi/articles/8796552.html

 

什么情况下使用celery:

一个请求的处理时间特别长

 

 先进行安装:

pip3 install celery
pip3 install eventlet

 

 

技术分享图片

  • user:用户程序,用于告知celery去执行一个任务。

  • broker: 存放任务(依赖RabbitMQ或Redis,进行存储)

  • worker:执行任务

/

依赖redis做消息队列(存放任务和结果)

//

 

//

worker 需要先启动起来,等待着任务的到来, 执行以下命令
celery worker -A s1 -l info  #在cmd里执行,s1是py文件名,-l是打印日志,info是日志的分类,这是在linux跟mac的命令
可以在cmd里面多次运行该命令, 应对大量的请求,



在window下,需要安装eventlet模块,
celery worker -A s1 -l info -P eventlet  #执行此命令,worker就启动起来了,取到任务,然后去执行
 

 

 

 

执行以下命令,

celery worker -A s1 -l info -P eventlet  #建议在linux使用celery

cmd显示如图所示,

技术分享图片

//

s1.py文件

import time
from celery import Celery
#假如redis有密码的话,[email protected]:6379  xxx就是密码
app = Celery(tasks, broker=redis://127.0.0.1:6379, backend=redis://127.0.0.1:6379)


@app.task
def xxxxxx(x, y):
    time.sleep(10)
    return x + y

 

s2.py文件

import s1

result=s1.xxxxxx.delay(8,67) #将任务及参数,交给redis队列,worker拿到去执行
print(result)  #执行这个文件,就是相当于执行任务
#返回一个随机字符串,实际上是对象,1f316713-d792-4e87-9b2a-06db5005071e

执行s2.py文件之后

技术分享图片

进redis查看结果,

技术分享图片

 

 /

技术分享图片

 

 

 celery模拟12306买票的例子

 

//

 


以上是关于7,知识拾遗-Wusir-crm项目-celery初识-celery案例的主要内容,如果未能解决你的问题,请参考以下文章

Django中的Json知识拾遗

Celery知识点总结

知识拾遗之线程进程池

python知识点拾遗

入门知识拾遗

java知识点拾遗:)