Bug #1611
BS端对于websocket关于Redis订阅推送部分进行修改
Start date:
09/01/2021
Due date:
09/02/2021
% Done:
100%
Estimated time:
8.00 h
Defect version:
Description
现场log日志反映了一些自定义的错误,如下
1、Timing task running error! java.lang.IllegalStateException: 远程 endpoint 处于 [TEXT_FULL_WRITING] 状态,是被调用方法的无效状态
2、Send subcriber message error! java.lang.IllegalStateException: 远程 endpoint 处于 [TEXT_FULL_WRITING] 状态,是被调用方法的无效状态
原因大概是负责订阅的线程和获取点实时数据的定时任务线程对同一socket争抢进行io操作,但加锁后出现了上述错误,为避免上述错误,现在将Redis订阅的数据放到一个无界队列中,定时任务负责队列中读取翻译后的Redis数据,
不再像之前一样订阅到数据后立马翻译并写入socket中