好久没来了,今天有时间来分享一下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,记录完毕。