【场控】时长类指标计算设计

160 阅读2分钟

1 背景

场控里面有很多指标涉及到时长相关、

比如 坐席单次休息时长坐席当天休息时长某个业务线下用户排队时长,这些都和时间有关系。所以需要设计一套模型,支撑上万数量级的坐席监控。比如有1w坐席,任意一个坐席休息时间超过10分钟都能实时感知到。

2 设计

采用的技术栈主要是 spring定时任务,redis。

为什么使用spring定时任务?spring定时任务支持ms级别的定时调度(内存层面调度,不需要通过网络),能支撑起上万数量级的坐席监控。

redis的作用是充当消息队列,定时任务会轮询消息队列,队头消费计时任务,队尾放回计时任务。

3 图示

单次时间计时

下面使用 坐席单次休息时长来讲解一下这个流程,假如某个坐席休息时长超过10分钟,就会触发告警。

dsaad.png

总时间计时

下面使用 坐席当天休息时长来讲解一下这个流程,假如某个坐席当天休息时长超过10分钟,就会触发告警。

dsadsa.png

集合类时间之和计时

下面使用 业务线下总排队时长来讲解一下这个流程,假如某个业务线下总排队时长超过10分钟,就会触发告警。

dsa.png

4 该套模型能支撑多少坐席的监控?

每个节点1s能够消费5次。

80个节点 1s能够消费400次

也就是说 400个坐席,任意一个坐席休息了10分钟,能够在10分零1s告警出来。

假如可以接受的延迟是30s。那么能够同时支撑12000个坐席监控。

如果将消费间隔调小,提高场控集群机器台数,能够接受的延迟提高。那么就能支撑更多的坐席监控。