LED情报板目前已经基本稳定
主要存在两个版本LED1.5 和LED2
两个版本的主要差别是 :
1.1.5的配置文件存在本地 2.0的存在平台 需要通过接口从平台获取
2.1.5的下发消息的时候需要同步返回 2.0的是异步返回,所以1.5的要尽可能完成 不然会导致发 布平台卡在那里
3.1.5上报状态是一个一个上报的,2.0上报是所有板子一起上报
4.1.5有注册接口 注册的时候需要把每个情报板支持的字体大小 上报给平台 2.0都是在平台配置的
5.1.5采用xml数据格式 2.0采用json格式
基于以上的区别 1.5和2.0架构完全不同 2.0是先开发的 1.5 是 后开发的
1.5采用类似nginx的主从进程模式,主进程负责监控子进程 程序初始化工作等等
并发采用协程st-thread进行 子进程启动会开启协程池比如20个协程,用来等待客户端的连接
所有下发都是协程接口进行 这样保证了并发性,同时引入了redis缓存 用于保存每个情报板的发布状态 发布记录等等 每个情报板保存多达500条记录,具体的是在配置文件中配置的 由于redis的数据是保存在内存中 所以 不能设置的太大
2.0查询状态采用EPOLL 发布的话则采取线程池同步io的方式处理
实现GetRunInfo实时查看情报板的状态
提供GetPublisInfo接口用于查看每个情报板的发布记录 如下图