方案一:简单方案
sequenceDiagram
H5->>后端: 进入文章,发送数据
后端-->>后端: 处理数据保存,及业务逻辑
H5->>后端: 离开文章,发送数据
后端-->>后端: 处理数据保存,及业务逻辑
流程设计
H5
- 点开文章
- 发送数据到后台
后台
- 接收数据
- 处理业务逻辑,保存数据
遇到问题
微信内不能监测文章退出事件func??????
找了好多事件func尝试,发现不生效。(可能方案没找全.....用时太久,切方案)
方案二: 模仿心跳机制
sequenceDiagram
H5->>后端: 进入文章,发送数据
后端-->>后端: 处理数据保存,及业务逻辑
H5->>后端: 定时心跳
后端-->>后端: 更新数据心跳时间
定时任务-->>定时任务: 巡查N时间前的心跳数据
定时任务-->>定时任务: 更新数据状态
定时任务-->>定时任务: 处理业务逻辑
流程设计
H5
- 点开文章
- 发送数据到后台
- -- 定时请求后端
后台
- 接收数据
- 处理业务逻辑,保存数据
- -- 接收定时请求,处理心跳逻辑
遇到问题
有误差,x秒左右(允许......)
- 用户查看文章(离开),未到心跳时间,数据状态INIT 《默认阅读x秒》
- 用户查看文章(离开),心跳,数据 PROCESS《可计算时长》