celery监控服务器性能,CELERY 测试多服务器

1.安装虚拟环境

1.1 安装pipenv

使用pip安装pipenv虚拟环境,比virtualenv使用更方便

pip install pipenv

1.2 创建虚拟环境

创建文件夹,例如env1和env2,然后分别进入文件夹下,使用命令创建虚拟环境

pipenv install

1.3 启动虚拟环境

如果需要启动虚拟环境,需要到响应的文件夹,例如env1,然后打开终端cmd,使用命令

pipenv shell

启动后,终端显示为

(env1-p9sPCrEF) E:\CODE\CeleryStudy

p9sPCrEF是虚拟环境的名称,在路径下可找到对应的文件夹。

虚拟环境的路径是:

C:\Users\chentao1\.virtualenvs\env1-p9sPCrEF

2.安装库

虚拟环境里默认只配置了python版本,所以对于用上的库需要重新安装,并且虚拟环境间是独立的,如果有多个虚拟机环境,则需要多次安装。

2.1 eventlet

在使用celery4.x时,必须安装这个,否则无法使用

pipenv install eventlet

2.2 安装celery

pipenv install celery

2.3 安装redis

pipenv install redis

3.实例

3.1 celery配置

celeryconfig.py

BROKER_URL = 'redis://127.0.0.1:6379/7' #中间件

CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/8' #保存结果

CELERY_TASK_SERIALIZER = 'json'

CELERY_ACCEPT_CONTENT = ['json']

CELERY_RESULT_SERIALIZER = 'json'

CELERY_CONCURRENCY = 8

3.2 实际代码

from celery import Celery

import time

import celeryconfig

app = Celery('tasks')

app.config_from_object('celeryconfig') #加载配置

@app.task

def add(x,y):

time.sleep(0.3)

return x + y

@app.task

def mul(x,y,z):

time.sleep(0.2)

return x * y * z

4. 运行CELERY

4.1 执行指令

分别启动两个虚拟环境后,输入命令(不要忘记加上-P eventlet):

celery -A tasks worker --loglevel=info -P eventlet

正常启动后会打印一下信息:

[tasks]

. tasks.add

. tasks.hostname

[2018-09-05 14:11:15,556: INFO/MainProcess] Connected to redis://127.0.0.1:6379/

7

[2018-09-05 14:11:15,565: INFO/MainProcess] mingle: searching for neighbors

[2018-09-05 14:11:16,589: INFO/MainProcess] mingle: all alone

[2018-09-05 14:11:16,603: INFO/MainProcess] pidbox: Connected to redis://127.0.0

.1:6379/7.

[2018-09-05 14:11:16,608: INFO/MainProcess] celery@CHENTAO1 ready.

4.2 命令解释

-A : 代表的是Application的首字母,我们的应用是在tasks.py中定义的

worker : 表示的是工人,执行任务用的

--loglevel=info : 打印LOG等级,用来观察任务执行情况

-P eventlet : celery4.x中必须添加的,不然会报错

4.3 执行

执行代码:

from tasks import add,mul

for _ in range(100):

m = mul.delay(11,33,55)

a = add.delay(10,250)

print(m.get())

print(a.get())

两个虚拟环境都启动celery后,都会打印出下列的信息。

[2018-09-05 14:36:05,690: INFO/MainProcess] Task tasks.mul[0fa4f82b-a462-4c1d-ab

1a-1a16ffa90120] succeeded in 0.20300000000861473s: 19965

[2018-09-05 14:36:05,795: INFO/MainProcess] Received task: tasks.add[80962729-9f

b8-48b9-8e72-dedf029eab27]

[2018-09-05 14:36:06,103: INFO/MainProcess] Task tasks.add[80962729-9fb8-48b9-8e

72-dedf029eab27] succeeded in 0.3119999999908032s: 260

[2018-09-05 14:36:06,114: INFO/MainProcess] Received task: tasks.add[734f212d-9a

f9-4b61-b640-7b4ec45f27f1]

如果先在两个虚拟环境中启动了celery,在运行过程中再启动第三个虚拟环境,也会自动接收任务并执行,打印结果。

5.参考

[https://blog.csdn.net/freeking101/article/details/74707619](https://blog.csdn.net/freeking101/article/details/74707619)

[http://docs.celeryproject.org/en/latest/index.html](http://docs.celeryproject.org/en/latest/index.html)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值