CN111090513A - 车联网平台终端链路健康状态的检测方法及存储介质 - Google Patents
车联网平台终端链路健康状态的检测方法及存储介质 Download PDFInfo
- Publication number
- CN111090513A CN111090513A CN201811235220.7A CN201811235220A CN111090513A CN 111090513 A CN111090513 A CN 111090513A CN 201811235220 A CN201811235220 A CN 201811235220A CN 111090513 A CN111090513 A CN 111090513A
- Authority
- CN
- China
- Prior art keywords
- slot
- vehicle
- identifier
- mounted terminal
- index number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 119
- 230000006855 networking Effects 0.000 claims abstract description 44
- 230000003862 health status Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 4
- 230000001351 cycling effect Effects 0.000 claims 1
- 238000001514 detection method Methods 0.000 abstract description 3
- 238000013507 mapping Methods 0.000 description 11
- 230000032683 aging Effects 0.000 description 4
- 238000004140 cleaning Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 101100166829 Mus musculus Cenpk gene Proteins 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种车联网平台终端链路健康状态的检测方法及存储介质,方法包括:创建预设大小的环形队列;循环遍历每个插槽;当车载终端与平台建立通信链路时,将车载终端的标识符与通信链路关联得到第一关联关系;同时,将标识符存入当前遍历到的插槽的前一个插槽的标识符集合中,并与其索引号关联得到第二关联关系;当车载终端与平台通信时,根据第二关联关系,将标识符从对应插槽的标识符集合中删除,并存入当前遍历到的插槽的前一个插槽的标识符集合中;更新第二关联关系;当再次遍历到同一插槽时,清空同一插槽的标识符集合,同时删除对应的第一关联关系和第二关联关系,并关闭对应的通信链路。本发明检测效率高,且CPU资源占用率低。
Description
技术领域
本发明涉及车联网技术领域,尤其涉及一种车联网平台终端链路健康状态的检测方法及存储介质。
背景技术
随着车联网行业的快速发展,车联网服务平台所面向的车辆数量已经从千、万升级到十万、百万以上的级别,与此同时对于车联网平台中单机单实例终端接入服务所能承载的车载终端数也有了更高的要求。目前绝大多数车联网平台服务商均能做到单机单实例终端接入服务承受10万级别的车载终端接入(其中,单机10W终端的稳定接入量更是成了车联网衡量平台接入性能的一个重大指标)。在这样一个高性能的终端接入形势下,以单接入服务终端为例,其需要管理10W级别的车载终端的通信链路,而如何更高效更省资源地去管理这些链路,也成了车联网行业所要解决的一个问题。
车联网服务平台检查车载终端链路较为传统的方法无外乎于轮询扫描法和链路通信瞬时检查法。其中轮询扫描法最为常用,其主要是用一个集合存储车载终端与平台建立的通信链路,假如车联网平台中的单个终端接入服务承载了10万车载终端的接入,则集合中就有10万个链路对象,每个链路对象均有一个链路最后使用时间的属性,当车载终端与链路有通信的时候,数据包一到达平台,则更新该链路的最后使用时间,而后通过一个定时任务按照固定的频率去轮询集合,检查所有链路的最后使用时间和当前的时间作对比,看是否超过平台规定的链路空闲时间,若超过则关闭该链路,若不超过则该链路不做任何处理。该轮询法每次都粗暴的对所有的链路进行一次判断,如果该终端接入服务有10万的车载终端在线,其每次都要对10万个链路对象进行一次判断,效率极为低下,且做了较多的无用功(正常情况下,如果某条链路如果近期有进行通信,则应该跳过该链路的超时判断,去针对那些近期没有通信的链路进行超时检查)。此外还有一种对于链路通信瞬时检查法,也是不少车联网服务平台会用的一种链路检查方法。其对于链路的存储和轮询扫描法一样,都是用一个集合来存储,只不过为了提高链路检查的效率,在每次每链路有通信的数据包到达的时候,都去启动一个延时线程(延时的时间为平台链路空闲的时间),在延时的时间一到就去执行该链路的超时检查,此方法对于链路的判断较为及时,但会产生非常多的延时线程,耗用较多的CPU资源用于延时线程的执行,甚至会影响其他正常业务的CPU占用率。故以上两种常用的方法都不是车联网平台进行终端链路检查的最优方法。
发明内容
本发明所要解决的技术问题是:提供一种车联网平台终端链路健康状态的检测方法及存储介质,检测效率高,且大大降低了CPU资源占用率。
为了解决上述技术问题,本发明采用的技术方案为:一种车联网平台终端链路健康状态的检测方法,包括:
根据预设的通信链路超时时间,创建对应大小的环形队列;
按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽;
当车载终端首次与车联网平台建立通信链路时,将所述车载终端的标识符与所述通信链路进行关联,得到第一关联关系;
同时,将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中,并将所述车载终端的标识符与所述前一个插槽的索引号进行关联,得到第二关联关系;
当所述车载终端通过所述通信链路与车联网平台进行通信时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,并将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中;
将第二关联关系中所述车载终端的标识符对应的索引号更新所述前一个插槽的索引号;
当再次遍历到同一插槽时,删除所述同一插槽的标识符集合中的标识符,同时删除所述标识符集合中的各标识符对应的第一关联关系和第二关联关系,并关闭所述各标识符对应的通信链路。
本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:
根据预设的通信链路超时时间,创建对应大小的环形队列;
按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽;
当车载终端首次与车辆网平台建立通信链路时,将所述车载终端的标识符与所述通信链路进行关联,得到第一关联关系;
同时,将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中,并将所述车载终端的标识符与所述前一个插槽的索引号进行关联,得到第二关联关系;
当所述车载终端通过所述通信链路与车联网平台进行通信时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,并将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中;
将第二关联关系中所述车载终端的标识符对应的索引号更新所述前一个插槽的索引号;
当再次遍历到同一插槽时,删除所述同一插槽的标识符集合中的标识符,同时删除所述标识符集合中的各标识符对应的第一关联关系和第二关联关系,并关闭所述各标识符对应的通信链路。
本发明的有益效果在于:通过创建与通信链路超时时间对应大小的环形队列,然后按照通信链路超时时间的基本单位来遍历环形队列中的每个插槽并循环进行遍历,使得再次遍历到同一个插槽时,表示距离上次遍历到该插槽时,已经过了一个通信链路超时时间。对于正常通信的链路,由于其每次发生通信,均会被移到当前遍历到的插槽的前一个插槽位置,所以只要车载终端与车联网平台的链路有在通信,其位置永远会保持在当前遍历到的插槽的前一个插槽位置,确保了正常活跃的链路不会进行超时检查的动作。而对于通信链路超时时间内没有进行通信的链路,其在环形队列中的位置没有改变,当过了一个通信链路超时时间则会被遍历到并进行检查。而被遍历到的插槽中的各标识符对应的车载终端均为链路超时的对象,可直接进行删除和链路的关闭动作。
本发明中,通过多种数据结构的融合,优化对车载终端链路的管理,使得对于链路的健康状态/是否超时的检查更为高效,其每次检查都具备较强的针对性,只检查近期没有通信的链路,而对于近期有在通信的链路则跳过检查,避免做了大量的无用功。同时也正由于检查的链路对象具备针对性,一个检查线程即可完成链路的检查,大大的降低了其使用的CPU资源。确保了车联网平台对于检查链路健康状态(即超时与否)的高效性能和最少CPU资源占用,极大的提升了车联网平台和车载终端链路的时效稳定性。
附图说明
图1为本发明的一种车联网平台终端链路健康状态的检测方法的流程图;
图2为本发明实施例一的方法流程图;
图3为本发明实施例一的环形队列的结构示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思在于:创建与通信链路超时时间对应大小的环形队列,并按照超时时间的基本单位进行遍历,当链路有进行通信则改变其在环形队列中的位置,只对当前遍历到的插槽中的通信链路进行检查。
请参阅图1,一种车联网平台终端链路健康状态的检测方法,包括:
根据预设的通信链路超时时间,创建对应大小的环形队列;
按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽;
当车载终端首次与车辆网平台建立通信链路时,将所述车载终端的标识符与所述通信链路进行关联,得到第一关联关系;
同时,将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中,并将所述车载终端的标识符与所述前一个插槽的索引号进行关联,得到第二关联关系;
当所述车载终端通过所述通信链路与车联网平台进行通信时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,并将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中;
将第二关联关系中所述车载终端的标识符对应的索引号更新所述前一个插槽的索引号;
当再次遍历到同一插槽时,删除所述同一插槽的标识符集合中的标识符,同时删除所述标识符集合中的各标识符对应的第一关联关系和第二关联关系,并关闭所述各标识符对应的通信链路。
从上述描述可知,本发明的有益效果在于:确保了车联网平台对于检查链路健康状态(即超时与否)的高效性能和最少CPU资源占用,极大的提升了车联网平台和车载终端链路的时效稳定性。
进一步地,还包括:
当所述车载终端下线时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,同时删除所述车载终端的标识符对应的第一关联关系和第二关联关系,并关闭所述车载终端的标识符对应的通信链路。
由上述描述可知,当车载终端下线时,则及时删除其相关信息,减少后续的数据处理量,进一步提高了检测效率并进一步降低了CPU资源占用率。
进一步地,所述按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽具体为:
创建指针,并将所述指针初始化指向所述环形队列的第一个插槽;
按照通信链路超时时间的基本单位,将所述指针指向当前所指向的插槽的下一个插槽。
由上述描述可知,通过指针来标识当前遍历到的插槽位置,在重复性操作的状况下,可以明显改善程序性能。
进一步地,所述将所述指针指向当前所指向的插槽的下一个插槽具体为:
若指针当前指向索引号为X的插槽,则将指针指向索引号为X+1的插槽,其中,0≤X<N-1,N为环形队列的长度大小;
若指针当前指向索引号为N-1的插槽,则将指针指向索引号为0的插槽。
由上述描述可知,当遍历到环形队列中最后一个插槽时,则继续从第一个插槽开始遍历,从而实现循环遍历。
进一步地,所述将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中具体为:
若指针当前指向索引号为Y的插槽,则将所述车载终端的标识符存入索引号为Y-1的插槽的标识符集合中,其中,0<Y≤N-1,N为环形队列的长度大小;
若指针当前指向索引号为0的插槽,则将所述车载终端的标识符存入索引号为N-1的插槽的标识符集合中。
由上述描述可知,由于指针当前所指向的位置的前一个插槽会在距离当前时间后的一个通信链路超时时间被遍历到,因此通过将每次通信的链路更新到指针所指向的位置的前一个插槽中,若该链路后续没有进行通信,在环形队列中的位置也没有更新,则会在一个通信链路超时时间后被遍历到并被检查清理。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:
根据预设的通信链路超时时间,创建对应大小的环形队列;
按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽;
当车载终端首次与车辆网平台建立通信链路时,将所述车载终端的标识符与所述通信链路进行关联,得到第一关联关系;
同时,将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中,并将所述车载终端的标识符与所述前一个插槽的索引号进行关联,得到第二关联关系;
当所述车载终端通过所述通信链路与车联网平台进行通信时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,并将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中;
将第二关联关系中所述车载终端的标识符对应的索引号更新所述前一个插槽的索引号;
当再次遍历到同一插槽时,删除所述同一插槽的标识符集合中的标识符,同时删除所述标识符集合中的各标识符对应的第一关联关系和第二关联关系,并关闭所述各标识符对应的通信链路。
进一步地,还包括:
当所述车载终端下线时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,同时删除所述车载终端的标识符对应的第一关联关系和第二关联关系,并关闭所述车载终端的标识符对应的通信链路。
进一步地,所述按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽具体为:
创建指针,并将所述指针初始化指向所述环形队列的第一个插槽;
按照通信链路超时时间的基本单位,将所述指针指向当前所指向的插槽的下一个插槽。
进一步地,所述将所述指针指向当前所指向的插槽的下一个插槽具体为:
若指针当前指向索引号为X的插槽,则将指针指向索引号为X+1的插槽,其中,0≤X<N-1,N为环形队列的长度大小;
若指针当前指向索引号为N-1的插槽,则将指针指向索引号为0的插槽。
进一步地,所述将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中具体为:
若指针当前指向索引号为Y的插槽,则将所述车载终端的标识符存入索引号为Y-1的插槽的标识符集合中,其中,0<Y≤N-1,N为环形队列的长度大小;
若指针当前指向索引号为0的插槽,则将所述车载终端的标识符存入索引号为N-1的插槽的标识符集合中。
实施例一
请参照图2-3,本发明的实施例一为:一种车联网平台终端链路健康状态的检测方法,如图2所示,包括如下步骤:
S1:根据预设的通信链路超时时间,创建对应大小的环形队列。在车联网平台启动的时候,先根据平台预先设定的通信链路超时时间N(基本单位为妙),创建同等大小的环形队列Cqueue[N]。例如,由于大多数车联网平台和车载终端的通信链路超时时间为30秒,因此可创建一个队列长度为30的环形队列。在环形队列中的每一个元素,本实施例中称其为插槽,简称为slot,故创建的Cqueue[30]的环形队列中则有30个slot,索引号依次为0-29。进一步地,本实施例中,将每一个slot的数据结构设计为set<vid>集合,其存储属于该slot的车载终端标识符集合,其中车载终端标识符可以为车辆vid或sim卡号,本实施例以vid为例。
S2:创建两个Map数据结构,用于记录车载终端相关的映射关系,具体地,其中一个Map的数据结构为Map<vid,index>,用于存储车载终端标识符和其所处的环形队列的插槽的索引号的映射关系,另一个Map的数据结构为Map<vid,connection>,用于存储车载终端标识符及其与车联网平台建立的通信链路实体的映射关系。
S3:创建一个全局共享的指针变量Cindex,并初始化Cindex=0,即指向环形队列Cqueue中的第一个插槽,如图3所示。
S4:按照通信链路超时时间的基本单位,将所述指针当前所指向的插槽的下一个插槽。例如,假设基本单位为秒,即每隔一秒将指针指向当前所指向的插槽的下一个插槽;具体地,若指针当前指向索引号为X的插槽,则将指针指向索引号为X+1的插槽,其中,0≤X<N-1,N为环形队列的队列长度。若指针当前指向索引号为N-1的插槽,则将指针指向索引号为0的插槽。
S5:当车载终端首次与车联网平台建立通信链路时,即当车载终端上线时,将所述车载终端的标识符与所述通信链路进行关联,得到第一关联关系;进一步地,可将车载终端的vid与通信链路的链路实体对象connection进行关联,并将得到的第一关联关系保存至Map<vid,connection>中。
同时,将所述车载终端的标识符存入指针当前所指向的插槽的前一个插槽的标识符集合中,并将所述车载终端的标识符与所述前一个插槽的索引号进行关联,得到第二关联关系。即若指针当前指向索引号为Y的插槽,则将所述车载终端的标识符存入索引号为Y-1的插槽的标识符集合中,并将所述车载终端的标识符与Y-1进行关联,得到第二关联关系,其中,0<Y≤N-1;若指针当前指向索引号为0的插槽,则将所述车载终端的标识符存入索引号为N-1的插槽的标识符集合中,并将所述车载终端的标识符与N-1进行关联,得到第二关联关系。然后将得到的第二关联关系保存至Map<vid,index>中。
S6:当所述车载终端通过所述通信链路与车联网平台进行通信时,根据第二关联关系,获取所述车载终端的标识符对应的索引号。即在车载终端与车联网平台进行正常的通信时,当数据包一到达车联网平台时,通过Map<vid,index>找到该车载终端的标识符在环形队列中所处的slot位置。
S7:将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,并将所述车载终端的标识符存入指针当前所指向的插槽的前一个插槽的标识符集合中,存入的规则同步骤S5。
S8:将第二关联关系中所述车载终端的标识符对应的索引号更新所述前一个插槽的索引号。即车载终端的标识符存入哪个插槽的标识符集合中,就将车载标识符与哪个插槽的索引号关联。
例如,假设一车载终端的标识符为vid1,步骤S6中获取到标识符vid1对应的索引号为2,指针当前指向的插槽的索引号为4,则在索引号为2的插槽的标识符集合中删除vid1,然后将vid1存入索引号为3的插槽的标识符集合中,并将该车载终端的第二关联关系从<vid1,2>更新为<vid1,3>。
S9:当所述车载终端下线时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
S10:将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,同时删除所述车载终端的标识符对应的第一关联关系和第二关联关系,并关闭所述车载终端的标识符对应的通信链路。
即当车载终端下线时,通过Map<vid,index>找到该车载终端的标识符在环形队列中所处的slot位置,在该slot的标识符集合中删除该车载终端的标识符,同时在Map<vid,connection>中删除关于该车载终端的第一关联关系,在Map<vid,index>中删除关于该车载终端的第二关联关系,进一步地,在删除关于该车载终端的第一关联关系时,对于该车载终端对应的通信链路需要执行链路关闭的操作。
S11:当指针再次指向同一插槽时,删除所述同一插槽的标识符集合中的标识符,同时删除所述标识符集合中的各标识符对应的第一关联关系和第二关联关系,并关闭所述各标识符对应的通信链路。
当指针再次指向同一插槽时,说明对于该插槽,已经经过了一个通信链路超时时间,也就是说,对于该插槽的标识符集合中的各标识符对应的车载终端来说,其与车联网平台的通信链路已超时,因此,清空该插槽的标识符集合,同时对于该标识符集合中各标识符,分别移除其在Map<vid,connection>中的第一关联关系和其在Map<vid,index>中的第二关联关系,对于Map<vid,connection>中移除的第一关联关系,对其对应的通信链路执行链路关闭的操作。
进一步地,在步骤S3中或步骤S4之前,创建一个线程CThread,通过该线程在通信链路超时时间的基本单位内执行步骤S11和步骤S4。也就是说,该线程按照固定的频率执行链路清理和环形队列指针移动的任务,执行频率为通信链路超时时间的基本单位,例如,假设基本单位为秒,则执行频率为1秒,即每隔一秒执行一次链路清理和指针移动的任务。
本实施例中,线程CThread每次进行链路健康状态的检查对象均为环形队列中Cindex当前所指向的一个slot的set集合。对于正常通信的链路,由于其每次发生通信,均会被移到环形队列Cindex-1的位置,所以只要车载终端与车联网平台的链路有在通信,其位置永远会保持为Cindex-1,确保了正常活跃的链路不会进行超时检查的动作。只有当超过环形队列Cqueue长度大小N×基本单位时间的时间内均没有进行通信的链路,才会被线程CThread执行检查,而被检查的set集合中的各标识符对应的车载终端均为链路超时的对象,可直接进行删除和链路的关闭动作。
通过本实施例,确保了车联网平台对于检查链路健康状态(即超时与否)的高效性能和最少CPU资源占用,极大的提升了车联网平台和车载终端链路的时效稳定性。
实施例二
本实施例是实施例一的一具体应用场景。
假设车联网平台所规定的链路的空闲的超时时长,即通信链路超时时间为30秒,基本单位为1秒。
1、初始化数据结构。在车联网平台启动时将初始化创建需要用到的数据结构和执行线程。具体包括如下:
a、创建环形队列Cqueue[N]。其中N为环形队列的长度,也为车联网平台所规定的链路的空闲的超时时长,即N=30,Cqueue的长度亦即为30。环形队列Cqueue中的每个元素为set<vid>集合。
b、创建一个全局共享的指针变量Cindex。Cindex首次初始化值为0,即指向环形队列的第一个slot的索引值。
c、创建2个映射关系的Map数据结构,分别为Map<vid,index>和Map<vid,connection>,其中Map<vid,index>用于存储车载终端vid和其所处的环形队列中的slot的索引号的映射关系,Map<vid,connection>用于存储车载终端vid和其与平台建立的通信链路实体的映射关系。
d、创建一个执行线程CThread。该线程按照固定的频率执行链路清理和环形队列指针移动的任务,执行频率为通信链路超时时间的基本单位,即每隔1秒执行一次任务。
2、当车载终端上线,并成功与车联网平台建立通信链路后,先在Map<vid,connection>中存储该车载终端的vid与其对应的链路对象connection的映射关系,同时将该车载终端的vid存入环形队列Cqueue中,存储的位置为指针Cindex当前所指向位置的前一个slot的set集合中,此外还需在Map<vid,index>中存储该车载终端vid与存储该vid的slot的索引号的映射关系。
其中,vid存入环形队列Cqueue的规则为:当指针Cindex=0的时候,vid存储到环形队列Cqueue中索引号为29的slot的set集合中,即环形队列最后一个slot的set集合中;当指针Cindex>0的时候,vid存储到环形队列Cqueue中索引号为Cindex-1的slot的set集合中。
3、当车载终端与车联网平台建立通信链路后进行正常的通信时,该车载终端的通信链路就处于活跃的状态,可以跳过对该链路的超时检查,避免无效的检查耗时。对于此种情况,在车载终端与车联网平台进行正常的通信时,当数据包一到达车联网平台时,则通过Map<vid,index>找到该车载终端的vid在环形队列Cqueue中所处的slot位置,然后从该slot的set集合中移除掉该车载终端的vid,将该vid重新存入到指针Cindex当前所指向位置的前一个slot的set集合中,存入规则与上述第2点中的存入规则一致。然后更新该车载终端的vid在Map<vid,index>中的映射关系,即将原来对应的索引号更新为重新存入的slot的索引号。
4、当车载终端下线时,通过Map<vid,index>找到该车载终端的vid在环形队列Cqueue中所处的slot位置,然后从该slot的set集合中移除掉该车载终端的vid,而后再删除Map<vid,index>和Map<vid,connection>关于该车载终端vid的映射关系,特别的针对Map<vid,connection>删除的connection需要执行链路关闭的动作。
5、在平台与车载终端提供通信服务的同时,线程CThread将以通信链路超时时间的基本单位为频率执行任务,即每隔1秒执行一次任务。线程CThread执行的任有两个,一个是清空指针Cindex当前所指向的slot的set集合,并针对该set集合中的所有vid移除其在Map<vid,index>和Map<vid,connection>中的映射关系,特别的对于Map<vid,connection>移除的connection执行链路的关闭动作,因为链路已经超时。在执行完清理动作后,线程CThread会将指针移动到环形队列Cqueue的下一个solt。
指针Cindex的移动规则为:当0≤Cindex<29时,则令Cindex=Cindex+1。当Cindex=29时,则令Cindex=0。
本实施例通过多种数据结构的融合,优化对车载终端链路的管理,使得对于链路的健康状态/是否超时的检查更为高效,其每次检查都具备较强的针对性,只检查近期没有通信的链路,而对于近期有在通信的链路则跳过检查,避免做了大量的无用功。同时也正由于检查的链路对象具备针对性,一个检查线程即可完成链路的检查,大大的降低了其使用的CPU资源。
实施例三
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:
根据预设的通信链路超时时间,创建对应大小的环形队列;
按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽;
当车载终端首次与车辆网平台建立通信链路时,将所述车载终端的标识符与所述通信链路进行关联,得到第一关联关系;
同时,将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中,并将所述车载终端的标识符与所述前一个插槽的索引号进行关联,得到第二关联关系;
当所述车载终端通过所述通信链路与车联网平台进行通信时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,并将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中;
将第二关联关系中所述车载终端的标识符对应的索引号更新所述前一个插槽的索引号;
当再次遍历到同一插槽时,删除所述同一插槽的标识符集合中的标识符,同时删除所述标识符集合中的各标识符对应的第一关联关系和第二关联关系,并关闭所述各标识符对应的通信链路。
进一步地,还包括:
当所述车载终端下线时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,同时删除所述车载终端的标识符对应的第一关联关系和第二关联关系,并关闭所述车载终端的标识符对应的通信链路。
进一步地,所述按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽具体为:
创建指针,并将所述指针初始化指向所述环形队列的第一个插槽;
按照通信链路超时时间的基本单位,将所述指针指向当前所指向的插槽的下一个插槽。
进一步地,所述将所述指针指向当前所指向的插槽的下一个插槽具体为:
若指针当前指向索引号为X的插槽,则将指针指向索引号为X+1的插槽,其中,0≤X<N-1,N为环形队列的长度大小;
若指针当前指向索引号为N-1的插槽,则将指针指向索引号为0的插槽。
进一步地,所述将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中具体为:
若指针当前指向索引号为Y的插槽,则将所述车载终端的标识符存入索引号为Y-1的插槽的标识符集合中,其中,0<Y≤N-1,N为环形队列的长度大小;
若指针当前指向索引号为0的插槽,则将所述车载终端的标识符存入索引号为N-1的插槽的标识符集合中。
综上所述,本发明提供的一种车联网平台终端链路健康状态的检测方法及存储介质,通过创建与通信链路超时时间对应大小的环形队列,然后按照通信链路超时时间的基本单位来遍历环形队列中的每个插槽并循环进行遍历,使得再次遍历到同一个插槽时,表示距离上次遍历到该插槽时,已经过了一个通信链路超时时间。对于正常通信的链路,由于其每次发生通信,均会被移到当前遍历到的插槽的前一个插槽位置,所以只要车载终端与车联网平台的链路有在通信,其位置永远会保持在当前遍历到的插槽的前一个插槽位置,确保了正常活跃的链路不会进行超时检查的动作。而对于通信链路超时时间内没有进行通信的链路,其在环形队列中的位置没有改变,当过了一个通信链路超时时间则会被遍历到并进行检查。而被遍历到的插槽中的各标识符对应的车载终端均为链路超时的对象,可直接进行删除和链路的关闭动作。本发明中,通过多种数据结构的融合,优化对车载终端链路的管理,使得对于链路的健康状态/是否超时的检查更为高效,其每次检查都具备较强的针对性,只检查近期没有通信的链路,而对于近期有在通信的链路则跳过检查,避免做了大量的无用功。同时也正由于检查的链路对象具备针对性,一个检查线程即可完成链路的检查,大大的降低了其使用的CPU资源。确保了车联网平台对于检查链路健康状态(即超时与否)的高效性能和最少CPU资源占用,极大的提升了车联网平台和车载终端链路的时效稳定性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种车联网平台终端链路健康状态的检测方法,其特征在于,包括:
根据预设的通信链路超时时间,创建对应大小的环形队列;
按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽;
当车载终端首次与车联网平台建立通信链路时,将所述车载终端的标识符与所述通信链路进行关联,得到第一关联关系;
同时,将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中,并将所述车载终端的标识符与所述前一个插槽的索引号进行关联,得到第二关联关系;
当所述车载终端通过所述通信链路与车联网平台进行通信时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,并将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中;
将第二关联关系中所述车载终端的标识符对应的索引号更新所述前一个插槽的索引号;
当再次遍历到同一插槽时,删除所述同一插槽的标识符集合中的标识符,同时删除所述标识符集合中的各标识符对应的第一关联关系和第二关联关系,并关闭所述各标识符对应的通信链路。
2.根据权利要求1所述的车联网平台终端链路健康状态的检测方法,其特征在于,还包括:
当所述车载终端下线时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,同时删除所述车载终端的标识符对应的第一关联关系和第二关联关系,并关闭所述车载终端的标识符对应的通信链路。
3.根据权利要求1所述的车联网平台终端链路健康状态的检测方法,其特征在于,所述按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽具体为:
创建指针,并将所述指针初始化指向所述环形队列的第一个插槽;
按照通信链路超时时间的基本单位,将所述指针指向当前所指向的插槽的下一个插槽。
4.根据权利要求3所述的车联网平台终端链路健康状态的检测方法,其特征在于,所述将所述指针指向当前所指向的插槽的下一个插槽具体为:
若指针当前指向索引号为X的插槽,则将指针指向索引号为X+1的插槽,其中,0≤X<N-1,N为环形队列的长度大小;
若指针当前指向索引号为N-1的插槽,则将指针指向索引号为0的插槽。
5.根据权利要求3所述的车联网平台终端链路健康状态的检测方法,其特征在于,所述将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中具体为:
若指针当前指向索引号为Y的插槽,则将所述车载终端的标识符存入索引号为Y-1的插槽的标识符集合中,其中,0<Y≤N-1,N为环形队列的长度大小;
若指针当前指向索引号为0的插槽,则将所述车载终端的标识符存入索引号为N-1的插槽的标识符集合中。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现以下步骤:
根据预设的通信链路超时时间,创建对应大小的环形队列;
按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽;
当车载终端首次与车辆网平台建立通信链路时,将所述车载终端的标识符与所述通信链路进行关联,得到第一关联关系;
同时,将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中,并将所述车载终端的标识符与所述前一个插槽的索引号进行关联,得到第二关联关系;
当所述车载终端通过所述通信链路与车联网平台进行通信时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,并将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中;
将第二关联关系中所述车载终端的标识符对应的索引号更新所述前一个插槽的索引号;
当再次遍历到同一插槽时,删除所述同一插槽的标识符集合中的标识符,同时删除所述标识符集合中的各标识符对应的第一关联关系和第二关联关系,并关闭所述各标识符对应的通信链路。
7.根据权利要求6所述的计算机可读存储介质,其特征在于,还包括:
当所述车载终端下线时,根据第二关联关系,获取所述车载终端的标识符对应的索引号;
将所述车载终端的标识符从所述索引号对应的插槽的标识符集合中删除,同时删除所述车载终端的标识符对应的第一关联关系和第二关联关系,并关闭所述车载终端的标识符对应的通信链路。
8.根据权利要求6所述的计算机可读存储介质,其特征在于,所述按照所述通信链路超时时间的基本单位,循环遍历所述环形队列中的每个插槽具体为:
创建指针,并将所述指针初始化指向所述环形队列的第一个插槽;
按照通信链路超时时间的基本单位,将所述指针指向当前所指向的插槽的下一个插槽。
9.根据权利要求8所述的计算机可读存储介质,其特征在于,所述将所述指针指向当前所指向的插槽的下一个插槽具体为:
若指针当前指向索引号为X的插槽,则将指针指向索引号为X+1的插槽,其中,0≤X<N-1,N为环形队列的长度大小;
若指针当前指向索引号为N-1的插槽,则将指针指向索引号为0的插槽。
10.根据权利要求8所述的计算机可读存储介质,其特征在于,所述将所述车载终端的标识符存入当前遍历到的插槽的前一个插槽的标识符集合中具体为:
若指针当前指向索引号为Y的插槽,则将所述车载终端的标识符存入索引号为Y-1的插槽的标识符集合中,其中,0<Y≤N-1,N为环形队列的长度大小;
若指针当前指向索引号为0的插槽,则将所述车载终端的标识符存入索引号为N-1的插槽的标识符集合中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811235220.7A CN111090513B (zh) | 2018-10-23 | 2018-10-23 | 车联网平台终端链路健康状态的检测方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811235220.7A CN111090513B (zh) | 2018-10-23 | 2018-10-23 | 车联网平台终端链路健康状态的检测方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090513A true CN111090513A (zh) | 2020-05-01 |
CN111090513B CN111090513B (zh) | 2023-05-30 |
Family
ID=70392511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811235220.7A Active CN111090513B (zh) | 2018-10-23 | 2018-10-23 | 车联网平台终端链路健康状态的检测方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090513B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181615A (zh) * | 2020-09-16 | 2021-01-05 | 银盛支付服务股份有限公司 | 一种定时任务超时的控制方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103648127A (zh) * | 2013-12-13 | 2014-03-19 | 武汉邮电科学研究院 | 用于lte系统带广播包识别的ue活动性检测方法 |
US20150180790A1 (en) * | 2013-12-20 | 2015-06-25 | Todd Rimmer | Method and system for flexible credit exchange within high performance fabrics |
CN105337892A (zh) * | 2014-08-15 | 2016-02-17 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法及装置 |
CN105656747A (zh) * | 2015-11-11 | 2016-06-08 | 乐卡汽车智能科技(北京)有限公司 | 一种多链路数据传输的方法及设备 |
CN105743796A (zh) * | 2014-12-10 | 2016-07-06 | 中兴通讯股份有限公司 | 信息获取方法、装置和路由器 |
CN106658743A (zh) * | 2015-11-04 | 2017-05-10 | 财团法人资讯工业策进会 | 用于对一无线通信资源进行调度的方法及装置 |
-
2018
- 2018-10-23 CN CN201811235220.7A patent/CN111090513B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103648127A (zh) * | 2013-12-13 | 2014-03-19 | 武汉邮电科学研究院 | 用于lte系统带广播包识别的ue活动性检测方法 |
US20150180790A1 (en) * | 2013-12-20 | 2015-06-25 | Todd Rimmer | Method and system for flexible credit exchange within high performance fabrics |
CN105337892A (zh) * | 2014-08-15 | 2016-02-17 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法及装置 |
CN105743796A (zh) * | 2014-12-10 | 2016-07-06 | 中兴通讯股份有限公司 | 信息获取方法、装置和路由器 |
CN106658743A (zh) * | 2015-11-04 | 2017-05-10 | 财团法人资讯工业策进会 | 用于对一无线通信资源进行调度的方法及装置 |
CN105656747A (zh) * | 2015-11-11 | 2016-06-08 | 乐卡汽车智能科技(北京)有限公司 | 一种多链路数据传输的方法及设备 |
Non-Patent Citations (1)
Title |
---|
崔文岩,孟相如,杨欢欢,李纪真,陈天平,康巧燕: "QoS约束的链路故障多备份路径恢复算法" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181615A (zh) * | 2020-09-16 | 2021-01-05 | 银盛支付服务股份有限公司 | 一种定时任务超时的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111090513B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108052675B (zh) | 日志管理方法、系统及计算机可读存储介质 | |
CN108845816B (zh) | 应用程序更新方法、系统、计算机设备及存储介质 | |
CN107872528B (zh) | 消息推送方法及装置 | |
CN106302632B (zh) | 一种基础镜像的下载方法以及管理节点 | |
US10712915B2 (en) | Information presentation using a client on a terminal | |
CN108121511B (zh) | 一种分布式边缘存储系统中的数据处理方法、装置及设备 | |
CN112099937A (zh) | 一种资源治理方法和装置 | |
CN112685175B (zh) | 一种服务拓扑图的构建方法、装置和计算机可读存储介质 | |
CN111813517A (zh) | 任务队列的分配方法、装置、计算机设备及介质 | |
CN113641544B (zh) | 用于检测应用状态的方法、装置、设备、介质和产品 | |
CN111090513B (zh) | 车联网平台终端链路健康状态的检测方法及存储介质 | |
CN112437125B (zh) | 信息并发处理方法、装置、电子设备及存储介质 | |
CN110716763B (zh) | web容器自动优化方法、装置、存储介质及电子设备 | |
CN113760242A (zh) | 一种数据处理方法、装置、服务器和介质 | |
CN112286559A (zh) | 一种车载智能终端的升级方法及装置 | |
CN116796085A (zh) | 一种文件处理方法、装置、电子设备及存储介质 | |
CN108121514B (zh) | 元信息更新方法、装置、计算设备及计算机存储介质 | |
CN113835728B (zh) | 一种数据更新方法、装置、电子设备及存储介质 | |
EP2990983A1 (en) | Method and apparatus for scanning files | |
CN115774837A (zh) | 一种信号校验方法、装置、设备、介质、程序产品及车辆 | |
CN114281476A (zh) | Kubernetes云原生集群资源删除保护方法、装置、设备及存储介质 | |
CN111625500B (zh) | 文件快照方法及装置、电子设备和存储介质 | |
US20170139969A1 (en) | Method for filtering and analyzing big data, electronic device, and non-transitory computer-readable storage medium | |
CN112148513B (zh) | 单点服务数据的转储方法、装置及存储介质 | |
CN111143351B (zh) | Imsi数据管理方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 303-e, Zone C, innovation building, software park, Xiamen Torch hi tech Zone, Xiamen, Fujian, 361000 Patentee after: Xiamen Yaxun Zhilian Technology Co.,Ltd. Country or region after: China Address before: 303-e, Zone C, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province Patentee before: XIAMEN YAXON NETWORK Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |