发明内容
为解决上述问题,本发明提供一种即时通信消息任务的自动执行系统,包括:
数据获取模块,其用以获取任务,并将各所述任务分配至时间轮中;
时间轮模块,其与所述数据获取模块连接,用以将获取的任务插入至时间槽中,所述时间槽为时间轮上设置的时间槽,所述时间轮为预先设置,时间轮有若干个;
处理模块,其包括若干执行器群,各所述执行器群用以执行不同类别的任务,所述任务为各所述时间轮输出的任务;
调用模块,其与所述时间轮模块以及处理模块连接,包括检测单元以及调整单元,
所述检测单元用以实时获取各所述执行器的运行内存,并基于执行器群过载状态以及时间轮在后续若干个周期内的输出同类别任务的输出数量变化情况划分执行器群的执行状态,所述同类别任务为任务类型与所述执行器群所需执行的任务类别相同的任务;
所述调整单元用以基于各所述执行器群的执行状态调整各所述执行器的任务执行对象,其中,
所述调整单元将第一执行状态的执行器群中的执行器调用至第二执行状态的执行器群中;
或,在预设条件下,所述调整单元将第三执行状态的执行器群中的执行器调用至第二执行状态的执行器群中;
所述预设条件为所述第一执行状态的执行器群中能调用的执行器的数量低于需求数量。
进一步地,各所述时间轮基于时间流转分发任务,其中,
所述时间轮每隔预设周期转动一次,判定基准刻度指向的时间槽内是否存储有任务,
若所述时间槽内存储有任务则将时间槽内的任务全部分发。
进一步地,所述检测单元获取时间轮在后续若干个周期内的输出同类别任务的输出数量,并计算趋势参量,
所述检测单元根据公式(1)计算趋势参量,
公式(1)中,K表示趋势参量,n表示周期数量,N(i+1)表示第i+1个周期内输出同类别任务的输出数量,N(i)表示i+1个周期内输出同类别任务的输出数量。
进一步地,所述检测单元获取时间轮在后续若干个周期内的输出同类别任务的输出数量变化情况,其中,
所述检测单元将所述趋势参量的绝对值与预设的趋势对比参量进行对比,
在第一对比条件下,所述检测单元判定时间轮在后续若干个周期内的输出同类别任务的输出数量为上升变化情况;
在第二对比条件下,所述检测单元判定时间轮在后续若干个周期内的输出同类别任务的输出数量为下降变化情况;
所述第一对比条件为所述趋势参量大于0且所述趋势参量的绝对值大于所述预设对比参量,所述第二对比条件为所述趋势参量小于0且趋势参量的绝对值小于或等于所述预设对比参量。
进一步地,所述检测单元基于执行器群过载状态以及时间轮在后续若干个周期内的输出同类别任务的输出数量变化情况划分执行器群的执行状态,其中,
在第一条件下,所述检测单元判定执行器群为第一执行状态;
在第二条件下,所述检测单元判定执行器群为第二执行状态;
在第三条件下,所述检测单元判定执行器群为第三执行状态;
所述第一条件为执行器群为非过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为下降变化情况,所述第二条件为执行器群为过载状态且时间轮在后续若干个周期内的输出同类别任务的输出数量为上升变化情况,所述第三条件为所述执行器群为过载状态且时间轮在后续若干个周期内的输出同类别任务的输出数量为下降变化情况,或,执行器群为非过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为上升变化情况。
进一步地,所述检测单元还用以基于执行器群中各执行器的运行内存判定执行器群的过载状态,其中,
若执行器群中各执行器的运行内存大于预设的运行内存阈值则所述检测单元判定执行器群处于过载状态;
若执行器群中各执行器的运行内存小于或等于预设的运行内存阈值则所述检测单元判定执行器群处于非过载状态。
进一步地,所述调整单元还用以确定调用优先级,其中,
若执行器群为过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为下降变化情况,则所述调整单元判定所述执行器群为高优先级;
若执行器群为非过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为上升变化情况,则所述调整单元判定所述执行器群为低优先级。
进一步地,所述调整单元将第三执行状态的执行器群中的执行器调用至第二执行状态的执行器群中,其中,
所述调整单元优先选取高优先级的执行器群中的执行器调用至第二执行状态的执行器群中,若已调用执行器的数量仍低于需求数量,则所述调整单元开始将低优先级的执行器群中的执行器调用至第二执行状态的执行器群中。
进一步地,所述调整单元内设置有调用比例阈值,所述调整单元调用任意执行器群中的执行器时已调用执行器的数量与调用前执行器的数量的比值需低于预设的比例阈值。
进一步地,所述调整单元内设置有需求数量的确定方式,需求数量基于第二状态的执行器群中执行器的总数量确定。
与现有技术相比,本发明通过设置数据获取模块、时间轮模块、处理模块以及调用模块,通过时间轮模块对时间轮进行管理,对任务进行发布,同时,通过调用模块对处理模块中执行器群进行管理,确定执行器群的过载状态,并基于各所述执行器群的执行状态调整各所述执行器的任务执行对象,本发明通过各模块的协同配合,减少执行器出现过载和算力浪费的情况,提高了执行器群的任务执行效率,提高了整个系统的可靠性。
尤其,本发明通过时间轮发布任务,相比传统的任务调度器遍历的形式减少的运算量,提高了任务发布的准确性和可靠性。
尤其,本发明检测单元划分执行器群的执行状态,第一执行状态表征了当前执行器群载荷较低,且后续接收对应类别任务的数量处于下降趋势,在实际情况中,上述情况下,执行器群后续容易出现算力浪费,第二执行状态表征了当前执行器群载荷较高,且后续接收对应类别任务的数量处于上升趋势,在这种情况下,后续可能会出现执行器群过载的情况,因此,本发明通过计算趋势参量,使得逻辑部件能够自动准确的对上述情况进行识别,进而后续基于上述情况进行调整,将第一执行状态的执行器群中的执行器调度至第二执行状态的执行器群中,进而,提前的进行执行器的调整部署,减少执行器后续出现过载和算力浪费的情况,提高了执行器群的任务执行效率,提高了整个系统的可靠性。
尤其,本发明调整单元在预设条件下将第三执行状态的执行器群中的执行器调用至第二执行状态的执行器群中,在实际情况中,将第三执行状态作为备选项,第三执行状态的执行器群中后续处于过载的概率相比第一执行状态的执行器群高,因此将第三执行状态的执行器群作为备选项,用以调用至第二执行状态的执行器群中,进而提前的进行执行器的调整部署,减少执行器后续出现过载和算力浪费的情况,提高了执行器群的任务执行效率,提高了整个系统的可靠性。
尤其,本发明调整单元还确定调用第三执行状态的执行器群的优先级,在实际情况中若执行器群为过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为下降变化情况后续出现过载的概率要低于执行器群为非过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为上升变化情况,则所述调整单元判定所述执行器群为低优先级,因此,优先调用高优先级的执行器群,减少执行器后续出现过载和算力浪费的情况,提高了执行器群的任务执行效率,提高了整个系统的可靠性。
具体实施方式
为了使本发明的目的和优点更加清楚明白,下面结合实施例对本发明作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
需要说明的是,在本发明的描述中,术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,还需要说明的是,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本发明中的具体含义。
请参阅图1以及图2所示,分别为本发明实施例的即时通信消息任务的自动执行系统结构示意图以及调用模块结构示意图,本发明的即时通信消息任务的自动执行系统包括:
数据获取模块,其用以获取任务,并将各所述任务分配至时间轮中;
时间轮模块,其与所述数据获取模块连接,用以将获取的任务插入至时间槽中,所述时间槽为时间轮上设置的时间槽,所述时间轮为预先设置,时间轮有若干个;
处理模块,其包括若干执行器群,各所述执行器群用以执行不同类别的任务,所述任务为各所述时间轮输出的任务;
调用模块,其与所述时间轮模块以及处理模块连接,包括检测单元以及调整单元,
所述检测单元用以实时获取各所述执行器的运行内存,并基于执行器群过载状态以及时间轮在后续若干个周期内的输出同类别任务的输出数量变化情况划分执行器群的执行状态,所述同类别任务为任务类型与所述执行器群所需执行的任务类别相同的任务;
所述调整单元用以基于各所述执行器群的执行状态调整各所述执行器的任务执行对象,其中,
所述调整单元将第一执行状态的执行器群中的执行器调用至第二执行状态的执行器群中;
或,在预设条件下,所述调整单元将第三执行状态的执行器群中的执行器调用至第二执行状态的执行器群中;
所述预设条件为所述第一执行状态的执行器群中能调用的执行器的数量低于需求数量。
具体而言,本发明对数据获取模块的具体结构不做限定,数据获取模块可以是预先与终端建立通信协议的数据收发器,只需能实现获取任务信息的功能即可。
具体而言,本发明对时间轮的具体设定方式不做限定,时间轮是一种用于时间管理和任务调度的数据结构,它通常被用于操作系统内核、网络路由器、调度程序等系统中,时间轮可以看作是一个循环的数组,其中每个位置代表一个时间段,时间轮的大小是固定的,每个时间段的长度也是固定的。时间轮按照递增的顺序存储时间段,并且每个时间段都有一个槽位,可以存储需要在该时间段内执行的任务,当然本领域技术人员也可以通过其他方式设定时间轮,此为现有技术,不再赘述。
具体而言,执行器群可以被看作服务器群,执行器可以是具备执行各类任务的功能的服务器,只需能满足执行对应的任务即可,在实际情况中各类型的任务往往均有需求,因此需要设定执行器群用以执行对应类型的任务。
具体而言,本发明对调用模块的具体结构不做限定,调用模块可以由逻辑部件构成,逻辑部件包括现场可编程部件、微处理器、计算机等。
具体而言,各所述时间轮基于时间流转分发任务,其中,
所述时间轮每隔预设周期转动一次,判定基准刻度指向的时间槽内是否存储有任务,基准刻度可以是一个指针,指向对应的时间槽时执行上述过程,
若所述时间槽内存储有任务则将时间槽内的任务全部分发。
具体而言,所述检测单元获取时间轮在后续若干个周期内的输出同类别任务的输出数量,并计算趋势参量,
所述检测单元根据公式(1)计算趋势参量,
公式(1)中,K表示趋势参量,n表示周期数量,N(i+1)表示第i+1个周期内输出同类别任务的输出数量,N(i)表示i+1个周期内输出同类别任务的输出数量。
具体而言,所述检测单元获取时间轮在后续若干个周期内的输出同类别任务的输出数量变化情况,其中,
所述检测单元将所述趋势参量的绝对值与预设的趋势对比参量进行对比,
在第一对比条件下,所述检测单元判定时间轮在后续若干个周期内的输出同类别任务的输出数量为上升变化情况;
在第二对比条件下,所述检测单元判定时间轮在后续若干个周期内的输出同类别任务的输出数量为下降变化情况;
所述第一对比条件为所述趋势参量大于0且所述趋势参量的绝对值大于所述预设对比参量,所述第二对比条件为所述趋势参量小于0且趋势参量的绝对值小于或等于所述预设对比参量。
在实施例中趋势对比参量K0为预先基于若干个周期内时间轮输出任务量的平均值Nm计算所得,在本实施例中设定K0=α×Nm,α表示预定系数,为使得能够体现出趋势变化的前提下,避免趋势对比参量过大,本领域技术人员可在预定区间[0,15%]内选定所述预定系数。
具体而言,所述检测单元基于执行器群过载状态以及时间轮在后续若干个周期内的输出同类别任务的输出数量变化情况划分执行器群的执行状态,其中,
在第一条件下,所述检测单元判定执行器群为第一执行状态;
在第二条件下,所述检测单元判定执行器群为第二执行状态;
在第三条件下,所述检测单元判定执行器群为第三执行状态;
所述第一条件为执行器群为非过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为下降变化情况,所述第二条件为执行器群为过载状态且时间轮在后续若干个周期内的输出同类别任务的输出数量为上升变化情况,所述第三条件为所述执行器群为过载状态且时间轮在后续若干个周期内的输出同类别任务的输出数量为下降变化情况,或,执行器群为非过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为上升变化情况。
本发明检测单元划分执行器群的执行状态,第一执行状态表征了当前执行器群载荷较低,且后续接收对应类别任务的数量处于下降趋势,在实际情况中,上述情况下,执行器群后续容易出现算力浪费,第二执行状态表征了当前执行器群载荷较高,且后续接收对应类别任务的数量处于上升趋势,在这种情况下,后续可能会出现执行器群过载的情况,因此,本发明通过计算趋势参量,使得逻辑部件能够自动准确的对上述情况进行识别,进而后续基于上述情况进行调整,将第一执行状态的执行器群中的执行器调度至第二执行状态的执行器群中,进而,提前的进行执行器的调整部署,减少执行器后续出现过载和算力浪费的情况,提高了执行器群的任务执行效率,提高了整个系统的可靠性。
本发明调整单元在预设条件下将第三执行状态的执行器群中的执行器调用至第二执行状态的执行器群中,在实际情况中,将第三执行状态作为备选项,第三执行状态的执行器群中后续处于过载的概率相比第一执行状态的执行器群高,因此将第三执行状态的执行器群作为备选项,用以调用至第二执行状态的执行器群中,进而提前的进行执行器的调整部署,减少执行器后续出现过载和算力浪费的情况,提高了执行器群的任务执行效率,提高了整个系统的可靠性。
具体而言,所述检测单元还用以基于执行器群中各执行器的运行内存判定执行器群的过载状态,其中,
若执行器群中各执行器的运行内存大于预设的运行内存阈值则所述检测单元判定执行器群处于过载状态;
若执行器群中各执行器的运行内存小于或等于预设的运行内存阈值则所述检测单元判定执行器群处于非过载状态。
具体而言,所述调整单元还用以确定调用优先级,其中,
若执行器群为过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为下降变化情况,则所述调整单元判定所述执行器群为高优先级;
若执行器群为非过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为上升变化情况,则所述调整单元判定所述执行器群为低优先级。
具体而言,所述调整单元将第三执行状态的执行器群中的执行器调用至第二执行状态的执行器群中,其中,
所述调整单元优先选取高优先级的执行器群中的执行器调用至第二执行状态的执行器群中,若已调用执行器的数量仍低于需求数量,则所述调整单元开始将低优先级的执行器群中的执行器调用至第二执行状态的执行器群中。
本发明调整单元还确定调用第三执行状态的执行器群的优先级,在实际情况中若执行器群为过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为下降变化情况后续出现过载的概率要低于执行器群为非过载状态,且时间轮在后续若干个周期内的输出同类别任务的输出数量为上升变化情况,则所述调整单元判定所述执行器群为低优先级,因此,优先调用高优先级的执行器群,减少执行器后续出现过载和算力浪费的情况,提高了执行器群的任务执行效率,提高了整个系统的可靠性。
具体而言,所述调整单元内设置有调用比例阈值,所述调整单元调用任意执行器群中的执行器时已调用执行器的数量与调用前执行器的数量的比值需低于预设的比例阈值。
在本实施例中设定调用比例阈值的目的在于保证原执行器群的执行运算能力,因此本领域技术人员可以在区间[0,0.25]内设定调用比例阈值。
具体而言,所述调整单元内设置有需求数量Nx的确定方式,需求数量基于第二状态的执行器群中执行器的总数量Nm2确定。
在本实施例中,设定需求数量Nx=Nm2×e,e表示设定系数,在保证调整效果的前提下本领域技术人员可以在区间[0,0.15]内设定所述设定系数。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。