掌桥专利:专业的专利平台
掌桥专利
首页

任务调度方法、装置、调度系统以及存储介质

文献发布时间:2023-06-19 12:13:22


任务调度方法、装置、调度系统以及存储介质

技术领域

本发明涉及数据调度领域,特别涉及一种任务调度方法、装置、调度系统以及计算机可读存储介质。

背景技术

现有调度方案中,由任务管理设备基于调度消息,配置执行时间表达式、执行内容和执行脚本等信息,以获得调度任务,由调度消息对应的调度设备,执行调度任务。

但是,采用现有的任务调度方法,任务调度的效率较低。

发明内容

本发明的主要目的是提供一种任务调度方法、装置、调度系统以及计算机可读存储介质,旨在解决现有技术中采用现有的调度方法,调度效率较低的技术问题。

为实现上述目的,本发明提出一种任务调度方法,应用于调度设备,所述调度设备中包括调度服务实例,所述方法包括以下步骤:

读取第一消息队列的目标调度消息;

判断配置后的所述调度服务实例的服务状态;其中,所述调度服务实例的服务状态通过接收第二消息队列广播的服务状态信息进行配置;

若所述服务状态为服务已开启,则在本地存储器中确定出与所述目标调度消息对应的用于执行调度任务的选定执行脚本。

可选的,所述判断配置后的所述调度服务实例的服务状态的步骤之后,所述方法还包括:

若所述服务状态为服务已暂停,则利用预设极小延迟时间,对所述目标调度消息的执行时间进行配置,以获得新的目标调度消息;

将所述新的目标调度消息添加至第三消息队列,以使所述第三消息队列,在所述预设极小延迟时间达到时,将所述新的目标调度消息添加到所述第一消息队列。

可选的,所述若所述服务状态为服务已开启,则在本地存储器中确定出与所述目标调度消息对应的用于执行调度任务的选定执行脚本的步骤,包括:

若所述服务状态为服务已开启,则获取所述调度服务实例的实例版本信息和队列版本信息,所述队列版本信息为所述第一消息队列、所述第二消息队列和所述第三消息队列对应的版本信息;

在所述实例版本信息和所述队列版本信息满足预设条件,且所述目标调度消息的任务状态信息为任务已开启时,在本地存储器中确定出所述选定执行脚本,其中,所述任务状态信息由所述第二消息队列广播。

可选的,所述目标调度消息具有目标延迟时间,所述目标调度消息是在所述目标延迟时间到达时,从所述第三消息队列添加至所述第一消息队列的,所述目标调度消息由任务管理设备创建,并发送至所述第三消息队列;

所述服务状态信息和所述任务状态信息由所述任务管理设备创建,并发送至所述第二消息队列。

可选的,所所述目标调度消息包括目标触发器名称和目标任务名称;所述在本地存储器中确定出所述选定执行脚本的步骤,包括:

利用所述目标触发器名称和所述目标任务名称,在所述本地存储器中索引选定实例名称和选定方法名称;

利用所述选定实例名称和所述选定方法名称,在所述本地存储器中索引所述选定执行脚本。

可选的,所述利用所述目标触发器名称和所述目标任务名称,在所述本地存储器中索引选定实例名称和选定方法名称的步骤之前,所述方法还包括:

接收所述第一消息队列发送的预设执行脚本、所述预设执行脚本对应的预设触发器名称和所述预设执行脚本对应的预设方法名称,所述预设执行脚本包括所述选定执行脚本,所述预设触发器名称包括所述选定触发器名称,所述预设方法名称包括所述选定方法名称;

将所述预设执行脚本、所述预设触发器名称和所述预设方法名称存储在所述本地存储器。

可选的,所述利用所述选定实例名称和所述选定方法名称,在所述本地存储器中索引所述选定执行脚本的步骤之后,所述方法还包括:

接收所述第二消息队列广播的版本更新数据,所述版本更新数据由所述任务管理设备发送至所述第二消息队列;

利用所述版本更新数据,对所述调度服务实例进行更新。

此外,为实现上述目的,本发明还提出了一种任务调度装置,应用于调度设备,所述调度设备中包括调度服务实例,所述方装置包括:

读取模块,用于读取第一消息队列的目标调度消息;

判断模块,用于判断配置后的所述调度服务实例的服务状态;其中,所述调度服务实例的服务状态通过接收第二消息队列广播的服务状态信息进行配置;

确定模块,用于若所述服务状态为服务已开启,则在本地存储器中确定出与所述目标调度消息对应的用于执行调度任务的选定执行脚本。

此外,为实现上述目的,本发明还提出了一种调度系统,所述调度系统包括任务管理设备和调度设备,所述任务管理设备包括消息队列模块,所述消息队列模块包括上述任一项所述的第一消息队列和第二消息队列,所述调度设备包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行计算机程序,所述计算机程序被所述处理器执行时实现如上述中任一项所述的调度方法的步骤。

此外,为实现上述目的,本发明还提出了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的调度方法的步骤。

本发明技术方案提出了一种任务调度方法,应用于调度设备,所述调度设备中包括调度服务实例,所述方法包括以下步骤:读取第一消息队列的目标调度消息;判断配置后的所述调度服务实例的服务状态;其中,所述调度服务实例的服务状态通过接收第二消息队列广播的服务状态信息进行配置;若所述服务状态为服务已开启,则在本地存储器中确定出与所述目标调度消息对应的用于执行调度任务的选定执行脚本。

现有的调度方法中,技术人员需要手动对调度设备中调度服务实例的服务状态进行配置,使得利用调度设备进行任务调度时,消耗的时间较长,调度效率较低。而本发明中,调度设备基于第二消息队列广播的服务状态信息进行调度服务实例的服务状态的配置,并不需要用户手动进行服务状态的配置,消耗的时间较少,调度效率较高。所以,利用本发明的任务调度方法,达到了提高调度效率的技术效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为本发明实施例方案涉及的硬件运行环境的调度设备结构示意图;

图2为本发明调度任务方法第一实施例的流程示意图;

图3为本发明调度任务方法第二实施例的流程示意图;

图4为本发明的实施例的任务调度装置的结构框图;

图5为本发明的一种实施例的调度系统的结构框图;

图6为本发明的另一种实施例的调度系统的结构框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例的主要解决方案是:提供一种任务调度方法,应用于调度设备,所述调度设备中包括调度服务实例,所述方法包括以下步骤:读取第一消息队列的目标调度消息;判断配置后的所述调度服务实例的服务状态;其中,所述调度服务实例的服务状态通过接收第二消息队列广播的服务状态信息进行配置;若所述服务状态为服务已开启,则在本地存储器中确定出与所述目标调度消息对应的用于执行调度任务的选定执行脚本。

现有技术中,由任务管理设备基于调度消息,配置执行时间表达式、执行内容和执行脚本等信息,以获得调度任务,由调度消息对应的调度设备,执行调度任务,任务调度的效率较低。本申请的方法调度设备基于第二消息队列广播的服务状态信息进行调度服务实例的服务状态的配置,并不需要用户手动进行服务状态的配置,消耗的时间较少,调度效率较高。所以,利用本发明的任务调度方法,达到了提高调度效率的技术效果。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的调度设备结构示意图。

通常,调度设备包括:至少一个处理器301、存储器302以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如前所述的调度方法的步骤。

处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。处理器301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关调度方法操作,使得调度方法模型可以自主训练学习,提高效率和准确度。

存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器301所执行以实现本申请中方法实施例提供的调度方法。

在一些实施例中,终端还可选包括有:通信接口303和至少一个外围设备。处理器301、存储器302和通信接口303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口303相连。具体地,外围设备包括:射频电路304、显示屏305和电源306中的至少一种。

通信接口303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器301和存储器302。在一些实施例中,处理器301、存储器302和通信接口303被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和通信接口303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路304用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路304包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路304还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏305用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏305是触摸显示屏时,显示屏305还具有采集在显示屏305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器301进行处理。此时,显示屏305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏305可以为一个,电子设备的前面板;在另一些实施例中,显示屏305可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在再一些实施例中,显示屏305可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏305还可以设置成非矩形的不规则图形,也即异形屏。显示屏305可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。

电源306用于为电子设备中的各个组件进行供电。电源306可以是交流电、直流电、一次性电池或可充电电池。当电源306包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。本领域技术人员可以理解,图1中示出的结构并不构成对调度设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的调度方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个调度设备上执行,或者在位于一个地点的多个调度设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个调度设备备上执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。

基于上述硬件结构,提出本发明调度方法的实施例。

参照图2,图2为本发明任务调度方法第一实施例的流程示意图,所述方法用于调度设备,所述方法包括以下步骤:

步骤S11:读取第一消息队列的目标调度消息。

在具体实施过程中,第一消息队列是指用于存储立即被消费的调度消息的消息队列,终端设备实时获取第一消息队列中的调度消息,所述目标调度消息即为所述第一消息队列中,任一时刻被实时读取到的调度消息。具体的,目标调度消息是通过任务管理设备通过第三消息队列添加到第一队列消息(下文描述具体的添加时机),将任务调度的调度消息添加到消息队列目的是为了将调度消息的发送与执行进行解耦,因此,可以供后续的调度设备在任意时刻,从而达到任务调度的灵活高效的技术效果。

步骤S12:判断配置后的所述调度服务实例的服务状态;其中,所述调度服务实例的服务状态通过接收第二消息队列广播的服务状态信息进行配置。

需要说的是,本发明的执行主体是调度设备,调度设备安装有计算机程序,调度设备执行计算机程序时,实现本发明的调度方法。其中,调度设备还包括调度服务实例,调度设备通过调度服务实例完成最终的调度任务——执行本发明的选定执行脚本,一个调度设备可以包括多个或一个调度服务实例。

调度消息是任务管理设备(也叫调度服务器)创建并发布的,目标调度消息即为执行本发明的任务调度方法时,任务管理设备发布的调度消息。

任务管理设备发布的调度消息均是具有延迟时间的,任务管理设备创建调度消息之后,会将其发送至第三消息队列(也叫延迟队列)。第三消息队列中的一个调度消息在其对应的延迟时间到达时,第三消息队列将其添加到第一消息队列(也叫任务队列);第一消息队列中的调度消息会被调度设备立即消费,即,第一消息队列中的调度消息会被立即读取。

可以理解的是,所述目标调度消息具有目标延迟时间,所述目标调度消息是在所述目标延迟时间到达时,从所述第三消息队列添加至所述第一消息队列的,所述目标调度消息由任务管理设备创建,并发送至所述第三消息队列。

需要说明的是,基于用户的操作或需求,任务管理设备创建所述目标调度消息,并将其添加到第三消息队列,其中,目标调度消息设置了延迟时间(延迟消息队列中的消息均具有延迟时间,不同的消息对应的延迟时间不同,可长可短,对于立即执行的,延迟时间设置为最短延迟时间,例如1ms),目标调度消息的延迟时间即为所述目标延迟时间;在目标延迟时间到达时,第三消息队列取出该目标调度消息,并将其放入第一消息队列,然后即执行步骤S11,不需要等待;而第三消息队列中的某一条调度消息,需要等待该条调度消息对应的延迟时间到达,才能将其添加到第一消息队列,用于直接消费。

需要说明的是,通常用于进行任务调度的调度设备的数量是多个,第二消息队列为广播队列的方式,即以广播的方式发布消息。在一些实施例中,调度设备也可以包括一个,第二消息队列是点对点消息队列。

其中,服务状态信息包括开启服务信息和暂停服务信息两种,调度设备基于开启服务信息进行所述调度服务实例的服务状态配置之后,调度服务实例的服务状态为服务已开启,调度设备基于暂停服务进行信息进行所述调度服务实例的服务状态配置之后,调度服务实例的服务状态为服务已暂停。

步骤S13:若所述服务状态为服务已开启,则在本地存储器中确定出与所述目标调度消息对应的用于执行调度任务的选定执行脚本。

需要说明的是,只有在服务状态为服务已开启时,可以继续消费目标调度消息,即进行在本地存储器中确定出与所述目标调度消息对应的用于执行调度任务的选定执行脚本的步骤。

若所述服务状态为服务已暂停,则利用预设极小延迟时间,对所述目标调度消息的执行时间进行配置,以获得新的目标调度消息;将所述新的目标调度消息添加至第三消息队列,以使所述第三消息队列,在所述预设极小延迟时间达到时,将所述新的目标调度消息添加到所述第一消息队列。

需要说明的是,预设极小延迟时间可以是用户基于需求设定的,例如1ms等。在所述服务状态为服务已暂停时,调度设备不能消费该目标调度消息,需要对其进行新的执行时间(调度消息的消费时间)的配置,即配置一个新的延迟时间(该新的延迟时间即为所述预设极小延迟时间),并将其添加到所述第三消息队列,以使使所述第三消息队列,在所述预设极小延迟时间达到时,将所述新的目标调度消息添加到所述第一消息队列,以实现重新消费的步骤。

进一步的,所述若所述服务状态为服务已开启,则在本地存储器中确定出与所述目标调度消息对应的用于执行调度任务的选定执行脚本的步骤,包括:

若所述服务状态为服务已开启,则获取所述调度服务实例的实例版本信息和队列版本信息,所述队列版本信息为所述第一消息队列、所述第二消息队列和所述第三消息队列对应的版本信息;在所述实例版本信息和所述队列版本信息满足预设条件,且所述目标调度消息的任务状态信息为任务已开启时,在本地存储器中确定出所述选定执行脚本,其中,所述任务状态信息由所述第二消息队列广播。

需要说明的是,所述服务状态信息和所述任务状态信息是所述任务管理设备创建,并发送至所述第二消息队列。在调度设备为多个时,第一消息队列为广播队列,即所述服务状态信息包括多个调度设备分别对应的服务状态信息,所述任务状态信息包括多个目标调度消息对应的任务状态信息,所述服务状态信息和所述任务状态信息均是以广播消息的方式分别发送。

通常,预设条件为所述实例版本信息和所述队列版本信息一致。在所述实例版本信息和所述队列版本信息为实例版本号低于所述队列版本号时,可以将目标调度消息配置一个极小延迟时间(例如1ms),并将配置后的目标调度消息添加到第三消息队列,以继续使配置后的目标调度消息执行本发明的任务调度方法的步骤。若所述实例版本信息和所述队列版本信息为实例版本号高于所述队列版本号,则丢弃该目标调度消息,重新返回步骤S11,等待读取第一消息队列中新的目标调度消息,以继续执行本发明的调度方法的步骤。

另外,在所述实例版本信息和所述队列版本信息满足预设条件,且配置后的所述任务状态为任务已暂停时,获取所述目标调度消息的定时任务表达式,利用所述定时任务表达式确定出下次执行时间和当前时间;将下次执行时间与当前时间的差作为配置延迟时间;利用所述配置延迟时间对所述目标调度消息进行配置,以获得配置后的目标调度消息;将该得配置后的目标调度消息添加到所述第三消息队列,以继续执行本发明任务调度的步骤。

具体的,所述目标调度消息包括目标触发器名称和目标任务名称;所述在本地存储器中确定出所述选定执行脚本的步骤,包括:利用所述目标触发器名称和所述目标任务名称,在所述本地存储器中索引选定实例名称和选定方法名称;利用所述选定实例名称和所述选定方法名称,在所述本地存储器中索引所述选定执行脚本。

需要说明的是,不同的调度消息包括的触发器名称和任务名称不同,对应的实例名称和方法名称不同;不同的实例名称和方法名称对应的执行脚本不同;可以理解为实例名称和方法名称定义称为一个key,根据key找到对应的value(执行脚本)。

进一步的,所述利用所述目标触发器名称和所述目标任务名称,在所述本地存储器中索引选定实例名称和选定方法名称的步骤之前,所述方法还包括:接收所述第一消息队列发送的预设执行脚本、所述预设执行脚本对应的预设触发器名称和所述预设执行脚本对应的预设方法名称,所述预设执行脚本包括所述选定执行脚本,所述预设触发器名称包括所述选定触发器名称,所述预设方法名称包括所述选定方法名称;将所述预设执行脚本、所述预设触发器名称和所述预设方法名称存储在所述本地存储器。

可以理解的是,执行脚本也是由第二消息队列发布的,由调度设备接收到并存储,以实现执行脚本的利用。

在另一些实施例中,若在本地存储器中未找到对应的执行脚本,则可以在调度设备中已存储的原生系统查找对应的选定执行脚本,并在找到选定执行脚本时,执行步骤S13。若均为找到选定执行脚本,则停止本次调度。

需要说明的是,本发明的第一消息队列和第三消息队列中的调度消息的消息属性参照表1,表1如下:

表1

参照表1,目标调度消息是包括目标触发器名称和目标任务名称的,第二消息队列和第三消息队列中的调度消息均具各自的触发器和各自的目标任务,触发器和任务为一个组合信息,需要根据该组合信息,确定出对应的选定组合信息(选定实例名称和选定方法名称)。

可以理解的是,目标调度消息对应的选定执行脚本,是利用目标调度消息中的目标触发器和目标任务作为依据,在本地存储其中确定的,即对应关系为目标触发器和目标任务作为结合信息,对应执行脚本。

进一步的,所述利用所述选定实例名称和所述选定方法名称,在所述本地存储器中索引所述选定执行脚本的步骤之后,所述方法还包括:接收所述第二消息队列广播的版本更新数据,所述版本更新数据由所述任务管理设备发送至所述第二消息队列;利用所述版本更新数据,对所述调度服务实例进行更新。

即,调度设备中的调度服务实例的版本是可以灵活更新的,基于任务管理设备通过第二消息队列发布的版本更新数据进行版本的更新,以保证调度设备中调度服务实例的版本信息与队列版本信息满足所述预设条件。

在一些实施例中,第一消息队列有四种类型,具体四种类型的定义参照表2,表2如下:

表2

对于表2中的四种不同类型的消息,他们分别包括的属性信息参照表3、表4、表5和表6,表1为VERSION消息至少包含的属性,表4为SERVICE消息至少包含的属性,表5为TASK消息至少包含的属性,表6为NEW_TASK消息至少包含的属性。表3、表4、表5和表6如下:

表3

表4

表5

表6

参照图3,图3为本发明调度任务方法第二实施例的流程示意图。

具体的,以图3为例,进行解释。调度设备包括多个时,每个调度设备至少包括一个调度服务实例时,调度设备在读取第一消息队列种的目标调度消息之后,需要判断各调度设备中各调度服务实例的服务状态是否为开启,并在全部的调度服务实例中存在服务状态为开启的选定调度服务实例时,继续确定实例版本信息和队列版本信息是否匹配;在实例版本信息和队列版本信息匹配时,则继续判断目标调度消息的任务状态是否为开启;实例版本信息为实例版本号高,目标调度消息无法被消费,则丢弃目标调度消息,队列版本信息为队列版本号高,则对目标调度消息配置极小延迟时间,并将其添加到第三消息队列;在任务状态为任务已开启时,继续判断目标调度消息在对应的选定调度服务实例的任务状态是否为开启,即一个目标调度消息并不能被全部的选定调度服务实例执行,只是由一部分执行;在目标调度消息的任务状态为暂停时,可以基于该目标调度消息的定时任务表达式,确定出下次执行该目标调度消息的执行时间(该执行时间通常是当前执行时间之后的时刻),利用该执行时间配置该目标调度消息,并将该目标调度消息添加到第三消息队列,以继续使配置后的目标调度消息由其他服务实例消费,以执行本发明的调度方法的步骤;在目标调度消息的任务状态为关闭时,则丢弃该目标调度消息。

在调度服务实例的服务状态均为暂停时,可以将目标调度消息配置一个极小延迟时间(例如1ms),并将配置后的目标调度消息添加到第三消息队列,以继续使配置后的目标调度消息由其他服务实例消费,以执行本发明的调度方法的步骤。

当目标调度消息在对应的选定调度服务实例的任务状态为开启时,继续判断各目标调度信息中的定时任务表达式类型,在定时任务表达式类型为定时执行时,需要确定本次执行时间与当前时间的差,在一个目标调度消息的本次执行时间在当前时间之后,则将该目标调度消息添加到第三消息队列(并以本次执行时间与当前时间的差作为配置该目标调度消息的延迟时间),在一个目标调度消息的本次执行时间在当前时间之前,则直接消费该目标调度消息。

当目标调度消息在对应的选定调度服务实例的任务状态为开启时,且定时任务表达式类型为间隔执行时,直接消费该目标调度消息,并利用目标调度消息中的定时任务表达式,计算下次执行时间,利用下次执行时间配置该目标调度消息,并将配置后的目标调度消息添加到第三消息队列。

一个目标调度消息在对应的选定调度服务实例的任务状态为暂停时,可以将该目标调度消息配置一个极小延迟时间(例如1ms),并将配置后的目标调度消息添加到第三消息队列,以继续使配置后的目标调度消息执行本发明的调度方法的步骤。

本发明技术方案提出了一种任务调度方法,应用于调度设备,所述调度设备中包括调度服务实例,所述方法包括以下步骤:读取第一消息队列的目标调度消息;判断配置后的所述调度服务实例的服务状态;其中,所述调度服务实例的服务状态通过接收第二消息队列广播的服务状态信息进行配置;若所述服务状态为服务已开启,则在本地存储器中确定出与所述目标调度消息对应的用于执行调度任务的选定执行脚本。

现有的调度方法中,技术人员需要手动对调度设备中调度服务实例的服务状态进行配置,使得利用调度设备进行任务调度时,消耗的时间较长,调度效率较低。而本发明中,调度设备基于第二消息队列广播的服务状态信息进行调度服务实例的服务状态的配置,并不需要用户手动进行服务状态的配置,消耗的时间较少,调度效率较高。所以,利用本发明的任务调度方法,达到了提高调度效率的技术效果。

本发明在第二消息队列中接收版本更新数据、动态脚本、服务状态信息和任务状态信息等,使调度服务具有运行时扩展调度任务的能力,实现灵活的调整服务状态以及任务状态,还可以实现调度服务实例版本的远程更新,以及执行脚本的远程更新,更新过程灵活方便;同时,可以利用第二消息队列发送的服务状态信息和任务状态信息,对调度实例和调度任务(调度消息)进行动态管理(服务状态的配置和任务状态的配置),甚至可以对于指定调度实例的指定任务进行管理,使得任务调度的灵活性较好。

参照图4,图4为本发明的实施例的任务调度装置的结构框图,所述装置用于调度设备,基于与前述实施例相同的发明构思,所述装置包括:

读取模块10,用于读取第一消息队列的目标调度消息;

判断模块20,用于判断配置后的所述调度服务实例的服务状态;其中,所述调度服务实例的服务状态通过接收第二消息队列广播的服务状态信息进行配置;

确定模块30,用于若所述服务状态为服务已开启,则在本地存储器中确定出与所述目标调度消息对应的用于执行调度任务的选定执行脚本。

需要说明的是,由于本实施例的装置所执行的步骤与前述方法实施例的步骤相同,其具体的实施方式以及可以达到的技术效果都可参照前述实施例,这里不再赘述。

参照图5,图5为本发明的一种实施例的调度系统的结构框图;图6为本发明的另一种实施例的调度系统的结构框图。所述调度系统包括任务管理设备和调度设备,所述任务管理设备包括消息队列模块,所述消息队列模块包括上述任一项所述的第一消息队列和第二消息队列,所述调度设备包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行计算机程序,所述计算机程序被所述处理器执行时实现如上述中任一项所述的调度方法的步骤。

需要说明的是,参见图5,任务管理设备可以是一个硬件设备,其中包括消息队列模块;作为一种实施方式,参见图6,任务管理设备也可以包括用于设置消息队列模块的第一子任务设备和用于任务配置的第二子任务设备。在具体实施过程中,图5和图6中的设备都可以用于执行前述实施例的任务调度方法,只要是设置了独立的消息队列模块,并利用前述实施例的方法进行任务调度,即可实现调度和执行的分离,调度基于队列,执行基于代码,进一步提高任务调度的效率。因此,本实施例中的各种实施方式都可以参考前述实施例中的实施方式和达到的技术效果,这里不再赘述。

在一些实施例中,消息队列模块还包括第三消息队列。调度系统中各设备和模块涉及的实施例参照上文描述,此处不再赘述。

以上所述仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

相关技术
  • 任务调度方法、任务调度装置、任务调度设备及存储介质
  • 任务调度方法、任务调度装置及存储介质
技术分类

06120113212945