车端事件触发式数据采集方法、装置、设备及介质与流程
本技术涉及网联与大数据,具体涉及一种车端事件触发式数据采集方法、装置、设备及介质。
背景技术:
1、当前,对于车端事件的触发式数据采集,常采用的方式为:使用环形存储器存储触发事件数据,在采集触发器触发时,将环形存储器的数据落盘,同时记录事件触发类型和触发时间点,然后根据事件优先级将落盘数据切片上传到平台。但此种使用的环形存储器并采用固定大小存储区域的方式,在采集触发器触发时,需要将环形存储器的数据落盘,从而易导致tbox(车载远程信息处理器)节点易出现oom(out of memory,内存耗尽)和数据冗余上传的问题。
2、因此,如何有效实现车端触发事件数据的上传处理,成为当前亟需解决的问题。
技术实现思路
1、本技术提供一种车端事件触发式数据采集方法、装置、设备及介质,能够有效实现车端触发事件数据的上传处理。
2、第一方面,本技术实施例提供一种车端事件触发式数据采集方法,所述车端事件触发式数据采集方法包括:
3、创建环形缓存形式的第一缓存对象和多个交替使用的fifo队列形式的第二缓存对象;
4、检测得到新触发事件时,将第一缓存对象中缓存的上一触发事件的数据溢出注入至第二缓存对象,并将新触发事件的数据存入第一缓存对象;
5、基于第二缓存对象中的数据缓存量,并在当前第二缓存对象的数据缓存量达到设定缓存量时,上传当前第二缓存对象中数据至云端,并采用其它第二缓存接收第一缓存对象的数据。
6、结合第一方面,在一种实施方式中,
7、所述第一缓存对象为采用双向链表构建的限定长度环形缓存形式;
8、所述第二缓存对象包括第一子缓存对象和第二子缓存对象,所述第一子缓存对象和第二子缓存对象交替进行数据的缓存和上传;
9、其中,当当前子缓存对象接收和缓存第一缓存对象的数据达到设定缓存量时,将当前子缓存对象缓存的数据上传至云端,同时由另一子缓存对象进行第一缓存对象的数据接收和缓存。
10、结合第一方面,在一种实施方式中,对于触发事件的检测,具体包括:
11、车端adcu根据事件触发规则,检测到触发事件时,将触发事件的id和数据发送至tbox;
12、tbox接收触发事件的id和数据,并记录当前时间,且tbox在进行触发事件的数据缓存时将触发事件的数据从第一缓存对象的头部存入第一缓存对象;
13、其中,当同时检测得到多个触发事件时,根据触发事件的优先级依次将触发事件的id和数据发送至tbox。
14、结合第一方面,在一种实施方式中,所述检测得到新触发事件时,将第一缓存对象中缓存的上一触发事件的数据溢出注入至第二缓存对象,并将新触发事件的数据存入第一缓存对象,具体包括:
15、持续判断是否存在新触发事件:
16、若存在,则当新触发事件的触发时间与上一触发事件的触发时间间差值小于或等于预设时间阈值时,将第一缓存对象中的所有数据溢出注入至第二缓存对象,然后将新触发事件的数据存入第一缓存对象,当新触发事件的触发时间与上一触发事件的触发时间间差值大于预设时间阈值时,将第一缓存对象中的所有数据溢出注入至第二缓存对象,然后将新触发事件的数据存入第一缓存对象,并将tbox最新记录的当前时间作为新触发事件的触发时间,同时更新边沿触发锁last_flag和curr_flag均为0;
17、若不存在,则当出现tbox最新记录的当前时间与上一触发事件的触发时间间差值大于预设时间阈值时,设置curr_flag为1,当curr_flag不等于last_flag时,将第一缓存对象中的所有数据溢出注入至第二缓存对象,并将last_flag设置为等于curr_flag,当curr_flag等于last_flag时,则在后续检测到新触发事件时,将新触发事件的数据从第一缓存对象的头部存入第一缓存对象。
18、结合第一方面,在一种实施方式中,所述将第一缓存对象中的所有数据溢出注入至第二缓存对象,具体包括:
19、向前移动第一缓存对象的尾部指针,将第一缓存对象中的所有数据从尾部溢出注入第二缓存对象的头部,更新第二缓存对象的头部指针和长度。
20、结合第一方面,在一种实施方式中,所述基于第二缓存对象中的数据缓存量,并在当前第二缓存对象的数据缓存量达到设定缓存量时,上传当前第二缓存对象中数据至云端,并采用其它第二缓存接收第一缓存对象的数据,具体包括:
21、持续监测当前进行第一缓存对象的数据接收和缓存的第二缓存对象,并判断该第二缓存对象的数据缓存条数是否大于预设条数阈值:
22、若否,则继续进行第一缓存对象的数据接收和缓存;
23、若是,则取出该第二缓存对象全部的缓存数据,分片打包形成数据包并上传至云端,同时,其它一第二缓存对象进行第一缓存对象的数据接收和缓存。
24、结合第一方面,在一种实施方式中,
25、若数据包上传成功,则删除取出的缓存数据,若数据包上传失败,则将取出的缓存数据存入本地文件,进行上传重试并待上传成功后删除。
26、第二方面,本技术实施例提供一种车端事件触发式数据采集装置,所述车端事件触发式数据采集装置包括:
27、创建模块,其用于创建环形缓存形式的第一缓存对象和多个交替使用的fifo队列形式的第二缓存对象;
28、缓存模块,其用于检测得到新触发事件时,将第一缓存对象中缓存的上一触发事件的数据溢出注入至第二缓存对象,并将新触发事件的数据存入第一缓存对象;
29、上传模块,其用于基于第二缓存对象中的数据缓存量,并在当前第二缓存对象的数据缓存量达到设定缓存量时,上传当前第二缓存对象中数据至云端,并采用其它第二缓存接收第一缓存对象的数据。
30、第三方面,本技术实施例提供一种车端事件触发式数据采集设备,所述车端事件触发式数据采集设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的车端事件触发式数据采集程序,其中所述车端事件触发式数据采集程序被所述处理器执行时,实现上述所述的车端事件触发式数据采集方法的步骤。
31、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有车端事件触发式数据采集程序,其中所述车端事件触发式数据采集程序被处理器执行时,实现上述所述的车端事件触发式数据采集方法的步骤。
32、本技术实施例提供的技术方案带来的有益效果包括:
33、双向链表结合固定长度队列的存储结构,实现数据的高效存储与灵活溢出,无需对缓存内数据进行整体移位,降低车端算力消耗;双fifo缓存器交替工作机制的使用,在保证数据有序和完整的前提下,实现数据接收的无缝衔接;状态边沿自锁和二级缓存联动,仅在状态边沿锁上升沿触发批量注入和缓存,避免重复操作;采用并行双态形式,一个接收数据,一个后台上传,上传与接收并行,无阻塞;对于事件触发频率高、持续事件长的场景,能够实现低冗余上传,减少上传负载和数据去重;结合容错机制,上传失败本地缓存,待网络恢复后重新上传。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com