场景如下:
生产者负责定时采集设备数据存入缓存队列,消费者负责从队列数据中取出数据进行解析,当全部设备的数据都采集完成后(也就是一个采集周期),将数据批量发送给平台。如果有设备出现故障,那么也应该在一次采集周期(除去故障设备)结束后,批量发送数据给平台。
这个批量数据还和其他的功能相关,之前开发这个需求的时候,一直都是以设备数量作为消费者是否将数据发送给平台的判断,当时居然没想过设备故障这回事,还是太年轻... ...简直被自己菜到无语... ...
通过设备数量来做判断其实可以实现功能,但是,当有设备发生故障后,一次采集周期结束并不会触发发送数据的代码,当数据数量等于设备数量时才能触发批量发送数据。直接影响到的就是数据不能按照预设的时间更新,今天早上突然有了灵感,我可以自己设定一个周期结束标识,当队列数据出队后进行判断,如果为设备采集数据则进行解析,否则执行批量发送代码。