1. 指定数据按时间戳排序,并且是队列,每次入队列记录一下当前队列最新数据时间,队列内的数据指定按交易所时间排序,每个业务(实时行情,委托队列四类数据)一个队列,单线程内操作。
2. 出队列的时候根据当前队列内数据的最晚时间,判断是不是缓存操过5分钟(指定缓存时间)后把不满足要求的数据出队列。
排序规则,指定按交易所产生数据实际+股票编码,这样可以加快速度,如果排序规则按股票编码+交易所时间,这样也符合规则,相同股票在一起,但是淘汰数据不方便。
3. 如果淘汰取出的数据还没有超时,可以再放进去,内部会保证时间序
有点小担心,就是缓存这段时间内,如果数据很大,会导致队列比较大,并且淘汰频率很高,存在数据延时问题。
http://zh.cppreference.com/w/cpp/container/priority_queue,文档可见,重载一下入队列的结构的operaor<(),即可。