CN109697117B - 终端控制方法、装置以及计算机可读存储介质 - Google Patents
终端控制方法、装置以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109697117B CN109697117B CN201710981418.9A CN201710981418A CN109697117B CN 109697117 B CN109697117 B CN 109697117B CN 201710981418 A CN201710981418 A CN 201710981418A CN 109697117 B CN109697117 B CN 109697117B
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- terminal
- terminals
- threshold value
- task
- 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.)
- Active
Links
Images
Classifications
-
- 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开公开了一种终端控制方法、装置以及计算机可读存储介质,涉及计算机技术领域。本公开的方法包括:响应于对多个终端建立批量任务,为多个终端开启心跳计数功能;利用心跳计数功能,根据接收到的多个终端的心跳包分别对多个终端进行心跳计数;在终端的心跳计数达到对应的心跳阈值的情况下,对该终端下发对应的任务;其中,多个终端被划分为至少一个心跳阈值组,不同心跳阈值组对应不同的心跳阈值。本公开的方案能够基于心跳机制实现对大量终端的灰度控制,能够极大降低潮涌现象的发生概率,降低服务端的负载压力,提高整体管控效率。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种终端控制方法、装置以及计算机可读存储介质。
背景技术
随着互联网和通信技术的发展,智能终端成为人们生活中不可缺少的工具。智能终端的种类越来越多,数量越来越大,对于大量的智能终端的管控难度也越来越大。
管理平台对于智能终端进行管理的命令多种多样,例如,重启设备、升级固件、升级安装卸载插件、切换服务平台、修改参数配置等等。在大量智能终端需要执行任务时,管理平台通常对这些终端同时下发命令。
发明内容
发明人发现:管理平台对大量终端同时下发命令的方式,很可能会产生潮涌现象,造成服务端负载过大,甚至导致服务端崩溃,降低整体的管控效率。
本公开所要解决的一个技术问题是:如何在对大量终端进行管控时减少潮涌现象的发生,提高整体管控效率。
根据本公开的一些实施例,提供的一种终端控制方法,包括:响应于对多个终端建立批量任务,为多个终端开启心跳计数功能;利用心跳计数功能,根据接收到的多个终端的心跳包分别对多个终端进行心跳计数;在终端的心跳计数达到对应的心跳阈值的情况下,对该终端下发对应的任务;其中,多个终端被划分为至少一个心跳阈值组,不同心跳阈值组对应不同的心跳阈值。
在一些实施例中,为多个终端开启心跳计数功能包括:对于未建立心跳计数功能的终端,标记为待开启心跳计数功能的终端,当接收到该终端的心跳包时,根据心跳包中该终端的标识查询到该终端的被标记为待开启心跳计数功能的终端,为该终端建立并开启心跳计数功能,所述心跳计数功能包括:所述终端的标识,心跳计数开启标志位,心跳计数器以及心跳阈值。
在一些实施例中,采用以下方法将终端划分为不同的心跳阈值组:根据历史终端执行任务时服务端的负载情况、当前服务端的负载情况以及当前批量任务的类型,确定当前服务端能够负载的终端的数量;根据当前服务端能够负载的终端的数量以及与该服务端对应的待下发任务的终端的数量,将与该服务端对应的待下发任务的终端划分为不同的心跳阈值组。
在一些实施例中,采用以下方法将终端划分为不同的心跳阈值组:选取预设数量的终端作为心跳阈值最低的心跳阈值组的终端;在当前心跳阈值组的终端达到心跳阈值后的预设心跳间隔内,选取下一心跳阈值组的终端,直至将终端划分完毕,预设心跳间隔为预设的各心跳阈值组终端之间的心跳阈值的差值;其中,在当前心跳阈值组的终端执行任务时对应的服务端负载未达到预设负载阈值的情况下,下一心跳阈值组的终端的数量等于上一心跳阈值组的终端的数量与预设递加值之和,在当前心跳阈值组的终端执行任务时对应的服务端负载达到预设负载阈值的情况下,下一心跳阈值组的终端的数量等于上一心跳阈值组的终端的数量。
在一些实施例中,在终端不在线的情况下,统计终端不在线的时间;在终端不在线时间达到时间阈值时,则根据预设步长减小终端的心跳阈值。
在一些实施例中,对该终端下发对应的任务包括:根据终端的标识向数据库发送任务查询指令;接收数据库返回的任务查询结果,向终端下发对应的任务。
在一些实施例中,该终端控制方法还包括:在下发成功的情况下,将终端对应的心跳计数功能关闭,在下发失败的情况下对任务进行重新下发,在下发失败次数达到阈值的情况下,判断下发失败的原因,根据失败原因确定关闭心跳计数功能或重置心跳计数功能。
根据本公开的一些实施例,提供的一种终端控制装置,包括:心跳计数开启模块,用于响应于对多个终端建立批量任务,为多个终端开启心跳计数功能;心跳计数模块,用于利用心跳计数功能,根据接收到的多个终端的心跳包分别对多个终端进行心跳计数;任务下发模块,用于在终端的心跳计数达到对应的心跳阈值的情况下,对该终端下发对应的任务;其中,多个终端被划分为至少一个心跳阈值组,不同心跳阈值组对应不同的心跳阈值。
在一些实施例中,心跳计数开启模块用于对于未建立心跳计数功能的终端,标记为待开启心跳计数功能的终端,当接收到该终端的心跳包时,根据心跳包中该终端的标识查询到该终端的被标记为待开启心跳计数功能的终端,为该终端建立并开启心跳计数功能,心跳计数功能包括:终端的标识,心跳计数开启标志位,心跳计数器以及心跳阈值。
在一些实施例中,该终端控制装置,还包括:第一终端划分模块,用于根据历史终端执行任务时服务端的负载情况、当前服务端的负载情况以及当前批量任务的类型,确定当前服务端能够负载的终端的数量,根据当前服务端能够负载的终端的数量以及与该服务端对应的待下发任务的终端的数量,将与该服务端对应的待下发任务的终端划分为不同的心跳阈值组。
在一些实施例中,该终端控制装置,还包括:第二终端划分模块,用于选取预设数量的终端作为心跳阈值最低的心跳阈值组的终端,在当前心跳阈值组的终端达到心跳阈值后的预设心跳间隔内,选取下一心跳阈值组的终端,直至将终端划分完毕,预设心跳间隔为预设的各心跳阈值组终端之间的心跳阈值的差值;其中,在当前心跳阈值组的终端执行任务时对应的服务端负载未达到预设负载阈值的情况下,下一心跳阈值组的终端的数量等于上一心跳阈值组的终端的数量与预设递加值之和,在当前心跳阈值组的终端执行任务时对应的服务端负载达到预设负载阈值的情况下,下一心跳阈值组的终端的数量等于上一心跳阈值组的终端的数量。
在一些实施例中,该终端控制装置,还包括:心跳调整模块,用于在终端不在线的情况下,统计终端不在线的时间,在终端不在线时间达到时间阈值时,则根据预设步长减小终端的心跳阈值。
在一些实施例中,任务下发模块用于根据终端的标识向数据库发送任务查询指令,接收数据库返回的任务查询结果,向终端下发对应的任务。
在一些实施例中,该终端控制装置还包括:心跳计数功能调整模块,用于判断向终端下发任务是否成功,在下发成功的情况下,将终端对应的心跳计数功能关闭,在下发失败的情况下对任务进行重新下发,在下发失败次数达到阈值的情况下,判断下发失败的原因,根据失败原因确定关闭心跳计数功能或重置心跳计数功能。
根据本公开的一些实施例,提供的一种终端控制装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器设备中的指令,执行如前述任一个实施例中的终端控制方法。
根据本公开的一些实施例,提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任一个实施例中的终端控制方法。
本公开中将需要执行任务的终端划分为至少一个心跳阈值组,不同心跳阈值组对应不同的心跳阈值,进而根据各个终端的心跳包对各个终端进行心跳计数,当计数达到心跳阈值时对终端下发对应的任务。本公开的方案能够基于心跳机制实现对大量终端的灰度控制,能够极大降低潮涌现象的发生概率,降低服务端的负载压力,提高整体管控效率。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的终端控制方法的流程示意图。
图2示出本公开的另一些实施例的终端控制方法的流程示意图。
图3示出本公开的一些实施例的终端控制装置的结构示意图。
图4示出本公开的另一些实施例的终端控制装置的结构示意图。
图5示出本公开的又一些实施例的终端控制装置的结构示意图。
图6示出本公开的再一些实施例的终端控制装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
针对管理平台对大量终端同时下发命令的方式,很可能会产生潮涌现象,造成服务端负载过大,甚至导致服务端崩溃,降低整体的管控效率的问题,提出本方案。
下面结合本公开的一些实施例,描述本公开的终端控制方法。
图1为本公开终端控制方法的一些实施例的流程图。如图1所示,该实施例的方法包括:步骤S102~S106。
步骤S102,响应于对多个终端建立批量任务,为多个终端开启心跳计数功能。
管理员或者管理***可以根据实际需求为多个终端建立批量任务,各个终端对应的任务可以存储在数据库中。可以首先判断需要执行任务的终端的数量是否达到灰度控制的阈值,如果达到灰度控制的阈值,则为各个终端开启心跳计数功能。
可以在终端控制装置(管理平台)中设置心跳计数模块,用于对各个终端进行心跳计数。心跳计数模块中可以针对各个终端分别设置心跳计数功能,心跳计数功能包括:终端的标识,心跳计数开启标志位,心跳计数器以及心跳阈值。终端的标识例如为终端的MAC(Media Access Control,媒体访问控制)地址。由于各个终端不一定能够按时发送心跳包(例如终端故障),因此,分别为各个终端设置心跳计数器更为准确。
对于已建立心跳计数功能的终端,则直接开启心跳计数功能,例如将心跳计数开启标志位置为1。对于未建立心跳计数功能的终端,标记为待开启心跳计数功能的终端,当接收到该终端的心跳包时,根据心跳包中该终端的标识查询到该终端的被标记为待开启心跳计数功能的终端,为该终端建立并开启心跳计数功能,
步骤S104,利用心跳计数功能,根据接收到的多个终端的心跳包分别对多个终端进行心跳计数。
在一些实施例中,根据接收到的心跳包中携带的终端标识查找对应的心跳计数功能,在已为该终端建立心跳计数功能并开启心跳计数功能的情况下,根据该终端的标识将该终端对应的心跳计数器加一;在未为该终端建立心跳计数功能的情况下,为该终端建立心跳计数功能,并开启心跳计数功能,将该终端对应的心跳计数器加一。
步骤S106,在终端的心跳计数达到对应的心跳阈值的情况下,对该终端下发对应的任务。
在一些实施例中,根据终端的标识向数据库发送任务查询指令,接收数据库返回的终端的任务,向终端下发该任务。数据库中存储有终端对应的待下发的任务,一个终端可能对应多个任务,多个任务对应不同的执行顺序。心跳计数达到心跳阈值这一条件触发终端控制装置(管理平台)向数据库查询终端任务的行为,进一步可以再根据数据库中终端任务的顺序向终端下发任务。
多个终端可以被划分为至少一个心跳阈值组,不同心跳阈值组对应不同的心跳阈值。终端控制装置(管理平台)可以向管理员显示管控界面,管控界面中显示各个终端的信息,例如任务内容、终端型号、地理位置等各种信息,由管理员根据实际需求对终端进行划分,并针对各个心跳阈值组设置不同的心跳阈值。例如,管理员可以根据地理位置将终端划分为不同的心跳阈值组,对北京地区的终端设置较低的心跳阈值,优先触发任务下发。
终端控制装置(管理平台)还可以预先内置终端的划分规则,根据划分规则自动根据各个终端的信息对终端划分不同的心跳阈值组,并设置不同的心跳阈值。下面描述一些实施方式。
在一些实施例中,根据历史终端执行任务时服务端的负载情况、当前服务端的负载情况以及当前批量任务的类型,确定当前服务端能够负载的终端的数量;根据当前服务端能够负载的终端的数量以及与该服务端对应的待下发任务的终端的数量,将与该服务端对应的待下发任务的终端划分为不同的心跳阈值组。
不同的终端可以对应不同的待执行的任务,不同的任务可能对应不同的服务端。例如有些终端需要升级固件,有些终端需要修改配置参数,分别对应不同的服务端。
终端控制装置(管理平台)可以获取历史的各个服务端在终端执行任务时的负载情况。终端控制装置(管理平台)可以根据当前批量任务的类型确定对应的服务端,根据历史终端执行该类型的任务时占用的资源量,当前对应的服务端剩余的资源量确定当前对应的服务端能够负载的终端的数量。进一步,将待下发任务的终端的数量除以对应的服务端的能够负载的终端的数量得到终端划分的心跳阈值组的个数,也就得到了每个心跳阈值组中终端的数量。如果上述商为非整数,则向上取整。
如果待执行任务的终端分别对应多个不同的服务端,针对每一个服务端将终端划分为不同的心跳阈值组后,可以再将各个服务端同一心跳阈值组的终端数量进行合并,确定各个心跳阈值组的终端数量。
上述确定服务端能够负载的终端的数量时,如果该服务端对应终端的多种任务,则在考虑服务端负载时需要考虑多终端同时分别执行多种任务时的负载情况。例如,终端升级固件和修改配置参数都需要占用某一服务端的资源,当前待下发的任务包括升级固件和修改配置参数,则参考历史该服务端的负载情况时,需要参考多终端同时分别执行升级固件和修改配置参数两种任务时的占用的资源量,进而确定该服务端能够负载的终端的数量。
在一些实施例中,终端控制装置(管理平台)中设置不同的服务端可以对应不同的任务。根据当前待下发的任务获取历史终端执行相同任务时终端控制装置(管理平台)的整体资源占用情况,结合历史整体资源占用情况,当前终端控制装置(管理平台)的资源使用情况以及待下发任务的终端的数量,对终端划分不同的心跳阈值组。
前述实施例可以相互结合使用,即参考各个服务端的负载情况的同时也参考终端控制装置(管理平台)的整体负载情况确定终端的心跳阈值组。
在历史负载情况或当前负载情况不方便估计的情况下,可以采用逐步增大每一心跳阈值组的终端的数量的方式,逐渐达到服务端负载与终端任务下发速率的平衡。具体实现方式可以参考以下实施例。
在一些实施例中,选取预设数量的终端作为心跳阈值最低的心跳阈值组的终端;在当前心跳阈值组的终端达到心跳阈值后的预设心跳间隔内,选取下一心跳阈值组的终端,直至将终端划分完毕,预设心跳间隔为预设的各心跳阈值组终端之间的心跳阈值的差值;其中,在当前心跳阈值组的终端执行任务时对应的服务端负载未达到预设负载阈值的情况下,下一心跳阈值组的终端的数量等于上一心跳阈值组的终端的数量与预设递加值之和,在当前心跳阈值组的终端执行任务时对应的服务端负载达到预设负载阈值的情况下,下一心跳阈值组的终端的数量等于上一心跳阈值组的终端的数量。
例如,首先将心跳阈值最低的心跳阈值组的终端设置为1000个,预设心跳间隔为5个心跳,预设递加值为500。心跳阈值最低的第一个心跳阈值组的心跳阈值5个心跳达到时,对第一个心跳阈值组的终端下发任务,在后续5个心跳内,监测第一个心跳阈值组的终端对应的服务端的负载。如果未达到预设负载阈值,则将第二个心跳阈值组的终端数量设置为1500个,相应的,第二个心跳阈值组的终端对应的心跳阈值则为10个心跳,依次类推,监测每个心跳阈值组的终端执行任务时服务端的负载,如果达到预设负载阈值,则不再增加后续心跳阈值组中终端的数量。
上述实施例的方法也可以作为测试阶段对服务端负载能力的评估,在实际使用时,将上述方法测得的服务端达到预设负载阈值时终端的数量、当前服务端的负载情况,以及待下发任务的终端数量将终端划分为不同心跳阈值组。
上述各实施例的方法主要用于确定各个心跳阈值组中终端的数量,每一心跳阈值组中的终端可以随机选取,也可以参考终端的各类信息(例如地域、厂商、设备型号以及用户信息)确定每一心跳阈值组中的终端,确定了终端的心跳阈值组即确定了对终端下发任务的先后顺序即确定了终端心跳阈值的高低。下面描述一些实施方式。
在一些实施例中,根据各个终端对应的任务的优先级,确定各终端的心跳阈值,对应的任务的优先级越高,终端的心跳阈值越低。任务的优先级可以根据实际需求进行设置,例如任务紧急程度、任务对应的用户的优先级等。
可选的,首先将终端划分为不同任务组,根据任务的优先级,对各个任务组进行排序。从优先级最高的任务组开始,对任务组中的终端,可以采用前述实施例中的方法划分为不同的心跳阈值组,并根据各心跳阈值组的心跳阈值完成对该任务组中终端的任务下发(即步骤S102~S104)。一个任务组内的终端任务下发完毕后,进入下一个任务组的工作过程,依次对各个任务组中的终端执行上述任务下发的过程。排序在前的任务组中的终端相对于排序在后的任务组中的终端,心跳阈值低,即任务优先级高的终端心跳阈值低。
划分任务组除了参考任务的优先级之外还可以根据地域、厂商、设备型号以及用户信息等各种终端的信息,可以根据实际需求进行划分,并且各个任务组的顺序也可以参考各种终端的信息并根据实际需求进行确定。
可选的,当多种待下发的任务可以同时处理时,在心跳阈值低的心跳阈值组中根据任务对应的服务端的负载能力,尽可能多的优选选取任务优先级高的终端。例如,第一个心跳阈值组为心跳阈值最低的心跳阈值组,每个心跳阈值组终端数量为1000,假设服务端可以处理两种不同优先级的任务,在服务端负载允许的情况下,在第一个心跳阈值组以及前几个心跳阈值组中优先选取对应的任务的优先级高的终端。
可选的,根据任务的优先级调整不同心跳阈值组的心跳阈值的间隔。例如,任务优先级高,不同心跳阈值组的心跳阈值的间隔短。
上述实施例的方法中将待下发任务的终端划分为至少一个心跳阈值组,不同心跳阈值组对应不同的心跳阈值,进而根据各个终端的心跳包对各个终端进行心跳计数,当计数达到心跳阈值时对终端下发对应的任务。上述实施例的方法能够基于心跳机制实现对大量终端的灰度控制,能够极大降低潮涌现象的发生概率,降低服务端的负载压力,提高整体管控效率。此外,上述实施例的方法在对终端下发批量任务时不会影响历史批量任务的运行,相对于不断关闭历史批量任务避免服务器负载过大的方案,进一步提高整体管控效果。
根据接收终端的心跳包的情况,可以判断终端是否在线,对于长期不在线的终端可以调整其心跳阈值。在一些实施例中,在终端不在线的情况下,统计终端不在线的时间;在终端不在线时间达到时间阈值时,则根据预设步长减小终端的心跳阈值。
例如,一个终端原本的心跳阈值是10个心跳,但是该终端连续三天都没有在线,则将其心跳阈值重置为3。因为长期不在线设备再次上线的几率比较低,而且其上线的行为通常是随机的,一般不会出现潮涌。
上述实施例的方法,采用心跳机制对终端进行任务的下发,能够发现终端的不在线状态,减少了对终端的轮询过程,节省了信令资源,提高了整体管控效率。
下面结合图2描述本公开终端控制方法的另一些实施例。
图2为本公开终端控制方法的一些实施例的流程图。如图2所示,该实施例的方法包括:步骤S202~S220。
步骤S202,响应于对终端建立批量任务,为终端开启心跳计数功能。
建立批量任务的终端有多个,步骤S202~S220是对于每一个待下发任务的终端都需要执行的步骤。
步骤S204,利用心跳计数功能,根据接收到的终端的心跳包对终端进行心跳计数。
多个终端被划分为至少一个心跳阈值组,不同心跳阈值组对应不同的心跳阈值。
步骤S206,判断终端的心跳计数是否达到对应的心跳阈值,如果是,则执行步骤S208,否则,重步骤S204重复执行。
步骤S208,根据终端的标识向数据库发送任务查询指令。
步骤S210,接收数据库返回的任务查询结果,向终端下发对应的任务。
步骤S212,判断任务是否下发成功,如果是,则执行步骤S214,否则,执行步骤S216。
步骤S214,关闭终端的心跳计数功能。
步骤S216,判断下发失败次数是否达到阈值。如果是,则执行步骤S218,否则,执行步骤S220。
步骤S218,判断下发失败的原因,根据失败原因确定关闭心跳计数功能或重置心跳计数功能。
例如,终端异常(例如返回失败码)的情况下,记录终端异常情况,并关闭心跳计数功能,等待后续处理。在终端不在线(心跳计数过程中下线)或无响应的情况下,将终端的心跳计数器重置为0,重新开始计数,等待下一次到达心跳阈值时,重新对下发失败的任务向终端进行下发,也可以根据实际需求对不在线或无响应的终端的心跳阈值进行修改,例如减小心跳阈值。
步骤S220,对任务进行重新下发。返回步骤S212重新开始执行。
本公开还提供一种终端控制装置,下面结合图3进行描述。
图3为本公开终端控制装置的一些实施例的结构图。如图3所示,终端控制装置30包括:心跳计数开启模块302,心跳计数模块304和任务下发模块306。
心跳计数开启模块302,用于响应于对多个终端建立批量任务,为多个终端开启心跳计数功能。心跳计数开启模块302例如可以执行上述实施例的步骤S102。
在一些实施例中,心跳计数开启模块302用于对于未建立心跳计数功能的终端,标记为待开启心跳计数功能的终端,当接收到该终端的心跳包时,根据心跳包中该终端的标识查询到该终端的被标记为待开启心跳计数功能的终端,为该终端建立并开启心跳计数功能,心跳计数功能包括:终端的标识,心跳计数开启标志位,心跳计数器以及心跳阈值。
心跳计数模块304,用于利用所述心跳计数功能,根据接收到的多个终端的心跳包分别对多个终端进行心跳计数。心跳计数模块304例如可以执行上述实施例的步骤S104。
任务下发模块306,用于在终端的心跳计数达到对应的心跳阈值的情况下,对该终端下发对应的任务。任务下发模块306例如可以执行上述实施例的步骤S106。
多个终端被划分为至少一个心跳阈值组,不同心跳阈值组对应不同的心跳阈值。
在一些实施例中,任务下发模块306用于根据终端的标识向数据库发送任务查询指令,接收数据库返回的任务查询结果,向终端下发对应的任务。
下面结合图4描述本公开终端控制装置的另一些实施例,
图4为本公开终端控制装置的另一些实施例的结构图。如图4所示,终端控制装置40包括:心跳计数开启模块402,心跳计数模块404和任务下发模块406,第一终端划分模块408。
心跳计数开启模块402,心跳计数模块404和任务下发模块406与图3中心跳计数开启模块302,心跳计数模块304和任务下发模块306的功能分别类似。
第一终端划分模块408,用于根据历史终端执行任务时服务端的负载情况、当前服务端的负载情况以及当前批量任务的类型,确定当前服务端能够负载的终端的数量,根据当前服务端能够负载的终端的数量以及与该服务端对应的待下发任务的终端的数量,将与该服务端对应的待下发任务的终端划分为不同的心跳阈值组。
在一些实施例中,可以利用第二终端划分模块410代替第一终端划分模块408。
第二终端划分模块410,用于选取预设数量的终端作为心跳阈值最低的心跳阈值组的终端,在当前心跳阈值组的终端达到心跳阈值后的预设心跳间隔内,选取下一心跳阈值组的终端,直至将终端划分完毕,预设心跳间隔为预设的各心跳阈值组终端之间的心跳阈值的差值。
在当前心跳阈值组的终端执行任务时对应的服务端负载未达到预设负载阈值的情况下,下一心跳阈值组的终端的数量等于上一心跳阈值组的终端的数量与预设递加值之和,在当前心跳阈值组的终端执行任务时对应的服务端负载达到预设负载阈值的情况下,下一心跳阈值组的终端的数量等于上一心跳阈值组的终端的数量。
在一些实施例中,终端控制装置40还可以包括:心跳调整模块412,用于在终端不在线的情况下,统计终端不在线的时间,在终端不在线时间达到时间阈值时,则根据预设步长减小终端的心跳阈值。
在一些实施例中,终端控制装置40还可以包括:心跳计数功能调整模块414,用于判断向终端下发任务是否成功,在下发成功的情况下,将终端对应的心跳计数功能关闭,在下发失败的情况下对任务进行重新下发,在下发失败次数达到阈值的情况下,判断下发失败的原因,根据失败原因确定关闭心跳计数功能或重置心跳计数功能。
本公开的实施例中的终端控制装置可各由各种计算设备或计算机***来实现,下面结合图5以及图6进行描述。
图5为本公开终端控制装置的一些实施例的结构图。如图5所示,该实施例的装置50包括:存储器510以及耦接至该存储器510的处理器520,处理器520被配置为基于存储在存储器510中的指令,执行本公开中任意一些实施例中的终端控制装置方法。
其中,存储器510例如可以包括***存储器、固定非易失性存储介质等。***存储器例如存储有操作***、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图6为本公开终端控制装置的另一些实施例的结构图。如图6所示,该实施例的装置60包括:存储器610以及处理器620,分别与存储器510以及处理器520类似。还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630,640,650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口650为SD卡、U盘等外置存储设备提供连接接口。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任一个实施例中的终端控制方法。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、***、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (16)
1.一种终端控制方法,包括:
响应于对多个终端建立批量任务,为所述多个终端开启心跳计数功能;
利用所述心跳计数功能,根据接收到的所述多个终端的心跳包分别对所述多个终端进行心跳计数;
在终端的心跳计数达到对应的心跳阈值的情况下,对该终端下发对应的任务;
其中,所述多个终端被划分为至少一个心跳阈值组,不同心跳阈值组对应不同的心跳阈值;
其中,响应于对多个终端建立批量任务,为所述多个终端开启心跳计数功能包括:
判断需要执行任务的终端的数量是否达到灰度控制的阈值,如果达到灰度控制的阈值,则为各个终端开启心跳计数功能;其中,对于已建立心跳计数功能的终端,则直接开启心跳计数功能,对于未建立心跳计数功能的终端,标记为待开启心跳计数功能的终端,当接收到该终端的心跳包时,根据心跳包中该终端的标识查询到该终端的被标记为待开启心跳计数功能的终端,为该终端建立并开启心跳计数功能。
2.根据权利要求1所述的终端控制方法,其中,所述心跳计数功能包括:所述终端的标识,心跳计数开启标志位,心跳计数器以及心跳阈值。
3.根据权利要求1所述的终端控制方法,其中,
采用以下方法将终端划分为不同的心跳阈值组:
根据历史终端执行任务时服务端的负载情况、当前服务端的负载情况以及当前批量任务的类型,确定当前服务端能够负载的终端的数量;
根据当前服务端能够负载的终端的数量以及与该服务端对应的待下发任务的终端的数量,将与该服务端对应的待下发任务的终端划分为不同的心跳阈值组。
4.根据权利要求1所述的终端控制方法,其中,
采用以下方法将终端划分为不同的心跳阈值组:
选取预设数量的终端作为心跳阈值最低的心跳阈值组的终端;
在当前心跳阈值组的终端达到心跳阈值后的预设心跳间隔内,选取下一心跳阈值组的终端,直至将终端划分完毕,所述预设心跳间隔为预设的各心跳阈值组终端之间的心跳阈值的差值;
其中,在当前心跳阈值组心跳阈值组的终端执行任务时对应的服务端负载未达到预设负载阈值的情况下,下一心跳阈值组心跳阈值组的终端的数量等于上一心跳阈值组心跳阈值组的终端的数量与预设递加值之和,在当前心跳阈值组心跳阈值组的终端执行任务时对应的服务端负载达到预设负载阈值的情况下,下一心跳阈值组心跳阈值组的终端的数量等于上一心跳阈值组心跳阈值组的终端的数量。
5.根据权利要求1-4任一项所述的终端控制方法,其中,
在终端不在线的情况下,统计终端不在线的时间;
在所述终端不在线时间达到时间阈值时,则根据预设步长减小所述终端的心跳阈值。
6.根据权利要求1-4任一项所述的终端控制方法,其中,
所述对该终端下发对应的任务包括:
根据终端的标识向数据库发送任务查询指令;
接收数据库返回的任务查询结果,向终端下发对应的任务。
7.根据权利要求1-4任一项所述的终端控制方法,还包括:
判断向终端下发任务是否成功;
在下发成功的情况下,将终端对应的心跳计数功能关闭;
在下发失败的情况下对任务进行重新下发,在下发失败次数达到阈值的情况下,判断下发失败的原因,根据失败原因确定关闭心跳计数功能或重置心跳计数功能。
8.一种终端控制装置,包括:
心跳计数开启模块,用于响应于对多个终端建立批量任务,为所述多个终端开启心跳计数功能;
心跳计数模块,用于利用所述心跳计数功能,根据接收到的所述多个终端的心跳包分别对所述多个终端进行心跳计数;
任务下发模块,用于在终端的心跳计数达到对应的心跳阈值的情况下,对该终端下发对应的任务;
其中,所述多个终端被划分为至少一个心跳阈值组,不同心跳阈值组对应不同的心跳阈值;
其中,所述心跳计数开启模块用于判断需要执行任务的终端的数量是否达到灰度控制的阈值,如果达到灰度控制的阈值,则为各个终端开启心跳计数功能;其中,对于已建立心跳计数功能的终端,则直接开启心跳计数功能,对于未建立心跳计数功能的终端,标记为待开启心跳计数功能的终端,当接收到该终端的心跳包时,根据心跳包中该终端的标识查询到该终端的被标记为待开启心跳计数功能的终端,为该终端建立并开启心跳计数功能。
9.根据权利要求8所述的终端控制装置,其中,
所述心跳计数功能包括:所述终端的标识,心跳计数开启标志位,心跳计数器以及心跳阈值。
10.根据权利要求8所述的终端控制装置,还包括:
第一终端划分模块,用于根据历史终端执行任务时服务端的负载情况、当前服务端的负载情况以及当前批量任务的类型,确定当前服务端能够负载的终端的数量,根据当前服务端能够负载的终端的数量以及与该服务端对应的待下发任务的终端的数量,将与该服务端对应的待下发任务的终端划分为不同的心跳阈值组。
11.根据权利要求8所述的终端控制装置,还包括:
第二终端划分模块,用于选取预设数量的终端作为心跳阈值最低的心跳阈值组的终端,在当前心跳阈值组的终端达到心跳阈值后的预设心跳间隔内,选取下一心跳阈值组的终端,直至将终端划分完毕,所述预设心跳间隔为预设的各心跳阈值组终端之间的心跳阈值的差值;
其中,在当前心跳阈值组的终端执行任务时对应的服务端负载未达到预设负载阈值的情况下,下一心跳阈值组的终端的数量等于上一心跳阈值组的终端的数量与预设递加值之和,在当前心跳阈值组的终端执行任务时对应的服务端负载达到预设负载阈值的情况下,下一心跳阈值组的终端的数量等于上一心跳阈值组的终端的数量。
12.根据权利要求8-11任一项所述的终端控制装置,还包括:
心跳调整模块,用于在终端不在线的情况下,统计终端不在线的时间,在所述终端不在线时间达到时间阈值时,则根据预设步长减小所述终端的心跳阈值。
13.根据权利要求8-11任一项所述的终端控制装置,其中,
所述任务下发模块用于根据终端的标识向数据库发送任务查询指令,接收数据库返回的任务查询结果,向终端下发对应的任务。
14.根据权利要求8-11任一项所述的终端控制装置,还包括:
心跳计数功能调整模块,用于判断向终端下发任务是否成功,在下发成功的情况下,将终端对应的心跳计数功能关闭,在下发失败的情况下对任务进行重新下发,在下发失败次数达到阈值的情况下,判断下发失败的原因,根据失败原因确定关闭心跳计数功能或重置心跳计数功能。
15.一种终端控制装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器设备中的指令,执行如权利要求1-7任一项所述的终端控制方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710981418.9A CN109697117B (zh) | 2017-10-20 | 2017-10-20 | 终端控制方法、装置以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710981418.9A CN109697117B (zh) | 2017-10-20 | 2017-10-20 | 终端控制方法、装置以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109697117A CN109697117A (zh) | 2019-04-30 |
CN109697117B true CN109697117B (zh) | 2021-03-09 |
Family
ID=66225157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710981418.9A Active CN109697117B (zh) | 2017-10-20 | 2017-10-20 | 终端控制方法、装置以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109697117B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110572292B (zh) * | 2019-10-30 | 2022-04-15 | 北京永亚普信科技有限责任公司 | 基于单向传输链路的高可用***及方法 |
CN113612624B (zh) * | 2021-06-29 | 2023-01-06 | 济南浪潮数据技术有限公司 | 一种节点之间心跳处理方法及装置 |
CN116800301A (zh) * | 2022-03-14 | 2023-09-22 | 华为技术有限公司 | 一种电力线通信***、在网状态检测方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808334A (zh) * | 2016-03-04 | 2016-07-27 | 山东大学 | 一种基于资源重用的MapReduce短作业优化***及方法 |
CN106874487A (zh) * | 2017-02-21 | 2017-06-20 | 国信优易数据有限公司 | 一种分布式爬虫管理***及其方法 |
US9766942B2 (en) * | 2013-11-01 | 2017-09-19 | Sony Corporation | Control device, processing device, and information processing method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170032300A1 (en) * | 2015-07-31 | 2017-02-02 | International Business Machines Corporation | Dynamic selection of resources on which an action is performed |
-
2017
- 2017-10-20 CN CN201710981418.9A patent/CN109697117B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9766942B2 (en) * | 2013-11-01 | 2017-09-19 | Sony Corporation | Control device, processing device, and information processing method |
CN105808334A (zh) * | 2016-03-04 | 2016-07-27 | 山东大学 | 一种基于资源重用的MapReduce短作业优化***及方法 |
CN106874487A (zh) * | 2017-02-21 | 2017-06-20 | 国信优易数据有限公司 | 一种分布式爬虫管理***及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109697117A (zh) | 2019-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108322345B (zh) | 一种故障修复数据包的发布方法及服务器 | |
CN111464355B (zh) | Kubernetes容器集群的伸缩容控制方法、装置和网络设备 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN109144559B (zh) | 一种更新数据包的推送方法及服务器 | |
CN111628941A (zh) | 一种网络流量的分类处理方法、装置、设备及介质 | |
CN109962856B (zh) | 资源分配方法、装置以及计算机可读存储介质 | |
CN112000355B (zh) | 用于固件升级的方法及装置、家电设备 | |
CN109697117B (zh) | 终端控制方法、装置以及计算机可读存储介质 | |
CN110933178B (zh) | 调整集群***内的节点配置的方法及服务器 | |
CN105049268A (zh) | 分布式计算资源分配***和任务处理方法 | |
CN111008075A (zh) | 一种负载均衡***、方法、装置、设备及介质 | |
CN111262726A (zh) | 一种配置信息更新方法、装置及计算机可读存储介质 | |
CN108306717A (zh) | 数据传输方法、服务器及存储介质 | |
CN112367345A (zh) | 数据处理方法、服务端设备及计算机可读存储介质 | |
CN111400039A (zh) | 云平台的控制方法和装置、云平台***、电子设备 | |
CN103501391A (zh) | 一种管理用户刷机行为的方法及*** | |
CN114661462A (zh) | 资源分配方法、***、计算机可读存储介质及电子设备 | |
CN111400041A (zh) | 服务器配置文件的管理方法、装置及计算机可读存储介质 | |
US10216593B2 (en) | Distributed processing system for use in application migration | |
CN107707395B (zh) | 一种数据传输方法、装置和*** | |
CN109104334B (zh) | 监控***中节点的管理方法和装置 | |
CN109962941B (zh) | 通信方法、装置以及服务器 | |
CN111885159B (zh) | 数据采集方法、装置、电子设备及存储介质 | |
CN102970183A (zh) | 一种云监控***及其数据回流方法 | |
CN113242302A (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 |
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 |