首页 > 技术文章 > HttpRunnerManager学习(三)

MrqiuS 2020-05-31 14:10 原文

好久没来了,今天有时间来分享一下httpRunnerManager后续学习,异步执行、定时任务、发送测试报告。直接上干货。

继httpRunnerManager学习二后,想要异步执行要安装rabbitMQ 同样我们下载docker镜像 :

#docker pull rabbitmq:3.8.0-management

启动容器:

#docker run -d --name rabbitmq3.8 -p 5672:5672 -p 15672:15672 -v $PWD/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 rabbitmq:3.8.0-management

-d 后台运行

--name  指定容器名

-p 指定服务运行的端口(5672:应用访问端口,15672控制台web端口)

-v 映射目录或文件

--hostname 主机名 

-e指定环境变量:RABBITMQ_DEFAULT_USER 用户名

        RABBITMQ_DEFAULT_PASS 密码

启动完毕:可通过http://服务器ip:15672打开,(前提开放访问端口)账号密码启动容器有设置,可登录说明rabbitMQ安装成功。

踩坑(我虚拟机linux安装,不知为何挂后台启动挂掉了。可通过docker ps 查看正在运行的docker容器,通过docker ps -a 查看全部容器通过 docker restart 容器id 重启容器就好了。)

下一步,修改 httpRunnerManager 中setting.py文件中的信息,找到 :

BROKER_URL = 'amqp://admin:123456@127.0.0.1:5672//‘修改地址为自己服务器地址,这样rabbitMQ就与httpRunnerManager 关联起来了。

下一步回到上级目录(manage.py所在的目录)启动worker

#nohup python3 manage.py celery -A HttpRunnerManager worker --loglevel=info > worker.out 2>&1 &

(后台运行 worker 日志存放:worker.out   查看日志:tail -f worker.out)

启动worker后就可异步执行。(如果没有,kill -9 进程号 关闭httpRunnerManager进程再重新后台运行)

 

 异步执行搞定。

下面继续,定时任务

启动 celery 监听定时任务

#nohup python3 manage.py celery beat --loglevel=info > celery.out 2>&1 &

(后台运行 celery beat 日志存放:celery.out   查看日志:tail -f celery.out)

添加定时任务

 

 >minute:分钟 可以是0-59任意整数

 >hour:小时,可以是0-23任意整数

 >day:日期,可以是0-31任意整数

 >month:月份,可以是1-12任意整数

 >week:星期 可以0-7任意整数 0,7表示周日

 */1 * * * *    (*之间有空格*)   这句话表示每分钟执行一次

执行效果

 

 下面继续发送邮件

编辑 HttpRunnerManager 文件下的setting.py文件 

找到

EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 465

我是QQ邮箱所以改成这样。

EMAIL_SEND_USERNAME = '*****@qq.com' # 定时任务报告发送邮箱,支持163,qq,sina,企业qq邮箱等,注意需要开通smtp服务
EMAIL_SEND_PASSWORD = '*******' # 邮箱密码

修改填写自己的邮箱、和密码(密码是授权码,在邮箱-设置-账户中申请)

 

 填写完成后保存退出。

关闭与HttpRunnerManager相关的进程,重新后台运行。

下面在定时任务中填写接收人邮箱进行测试:

 

 测试结果:

 

 

 

 ok,记录完毕。

 

推荐阅读