locust的master相关的几个监听器:

心跳监听器:

一个while循环,不断判断所有client当前的心跳状况,如果有一个client失去了心跳,就打印了一个警告日志,如果所有client都失去了心跳,就主动停止测试

client监听器:

一个while循环,不断接受client发送的消息,根据发送消息的类型的不同做出相应的处理

消息类型:

client_ready:client发给master的,代表client已经启动

heartbeat:client发给master的,代表client是存活状态

swap:master发给client,告诉client开始扩充用户数

swapping:client发给master的,代表正在扩充用户数

complete_swaping:client发给master,代表扩充用户完成达到执行的数量,发送完这个消息之后就开始测试了

stats:client发给master,每隔一定时间就上报结果消息给master

client_stopped:client发给master,代表测试结束了

quit:client发给master的,告诉master自己退出了,master收到消息会更新当前可用的client列表,如果所有client都quit了,那么master自己也会stop&&quit

exception:client 发给master的,master会记录异常内容

slave相关的事件:

心跳上报:while循环每隔一段时间就会给master发送心跳消息

消息接收:while循环:一直接受master发送的消息,根据不同的消息类型做出相应的动作

swap:master发给slave,告诉我开始扩展用户

stop:master发给slave,告诉slave停止测试

quit: master发个slave,告诉slave退出

其他的消息类型:注册了监听器的消息类型(但是不等于swap,stop,quit),然后会调用相应的监听器

别的消息类型:报错

结果上报:每隔一段时间上报结果数据

启动master的时候会指定期望的slave的数量,比如指定了2个,那么当master收到2个slave发来的client_ready的消息才会分别给每个slave发送spawn

的消息,并且更新状态是spawning, 当收到所有client发送的spawing_complete的消息的时候更新状态是running

收到client_stopped的消息,会把client那个节点删除

收到quit的消息,会把client删除,当收到所有的client的quit消息的时候,master停止,如果状态不是初始化,已停止,停止中,修改状态是停止中,给他每个client发送停止消息,如果是--headless,非web方式启动,给每个client发送quit消息,然后睡一会,然后自己把自己杀死

最新文章

  1. Data source rejected establishment of connection, message from server: "Too many connections"解决办法
  2. 第52讲:Scala中路径依赖代码实战详解
  3. IOS- Run Loops
  4. coco2dx加载网络图片并保存
  5. Summary of java stream classes
  6. Halcon学习笔记之缺陷检测(二)
  7. 对于python的内存管理的好文章
  8. 【模拟】Vijos P1062 迎春舞会之交谊舞
  9. poj 1089 Intervals
  10. Beacon浅析
  11. 初步STL集装箱List
  12. 关于IntelliJ IDEA删除项目
  13. RPC-非阻塞通信下的同步API实现原理,以Dubbo为例
  14. 用R语言做数据清理
  15. [APIO2013]机器人(斯坦纳树)
  16. Part-Three 类与对象
  17. Xamarin.Android 无法检索到 Resource 问题
  18. linux安装curl扩展
  19. 按行拆分文本文件与合并文本文件---I/O流---java
  20. 2018.07.04 POJ 1113 Wall(凸包)

热门文章

  1. 微信小程序的全局弹窗以及全局实例
  2. vue-fullpage全屏插件使用
  3. 探索 C 语言的指针
  4. k8s(docker-desktop)简单搭建zookeeper三节点集群
  5. 爆肝200+小时,总结出的 Creator 3.x 入门修炼指南!全免费
  6. 多个module的verilog文件分割为多个文件
  7. video.js 注销上一个对象并重新初始化
  8. 《用Python写网络爬虫》pdf高清版免费下载
  9. 【问题】Windows(CR LF)和Unix(LF)
  10. Eureka出现Connect to localhost:8761 timed out问题