码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-01-03 21:47:15      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:返回   window   div   ref   rabbitmq   lan   字符   一个   知识   

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有密码的话,xxx@127.0.0.1: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案例

标签:返回   window   div   ref   rabbitmq   lan   字符   一个   知识   

原文地址:https://www.cnblogs.com/dlh-lmsh/p/10216846.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!