任务调度管理方法、装置、计算机系统及可读存储系统与流程

文档序号:17720045发布日期:2019-05-22 02:05阅读:138来源:国知局
任务调度管理方法、装置、计算机系统及可读存储系统与流程

本发明涉及系统运维技术领域,尤其涉及一种任务调度管理方法、装置、计算机系统及可读存储系统。



背景技术:

当前的任务调度管理装置由于无法实现对服务器进行分区控制,因此在同一域名下无法实现灰度发布,若需要进行灰度发布则需要由操作者再设定一域名来进行,这种方式为操作者在进行灰度发布时造成了很大的不便;

同时,由于当前的任务调度管理装置无法对任务信息的管理方式单一,因此,无法监测到比较重要的任务信息的执行情况,进而导致任务调度管理装置的可靠性不高。



技术实现要素:

本发明的目的是提供一种任务调度管理方法、装置、计算机系统及可读存储系统,用于解决现有技术存在的问题。

为实现上述目的,本发明提供一种任务调度管理方法,包括以下步骤:

s1:创设命名空间;

s2:提取并实例化任务信息,获得任务数据;

s3:将所述任务数据与所述命名空间关联;

s4:对所述任务数据分片获得分片项;将分片项输出至服务系统;

s5:接收所述服务系统执行分片项后输出的执行结果,并根据所述执行结果管理任务数据及任务信息。

上述方案中,所述步骤s1中的命名空间包括生产命名空间和灰度命名空间,所述步骤s2中的任务信息可为生产任务或灰度任务,所述步骤s3中任务数据可为生产任务数据或灰度任务数据;所述步骤s4中的分片项包括生产分片项和灰度分片项。

上述方案中,所述步骤s2包括从服务系统提取任务信息,利用客户端数据包实例化任务信息获得任务数据;所述任务数据包括任务配置信息,任务地址信息和任务执行信息;其中,从生产子系统中提取生产任务,从灰度子系统中提取灰度任务;

所述步骤s3包括将生产任务数据与生产命名空间关联,将灰度任务数据与灰度命名空间关联,以隔离生产任务数据和灰度任务数据;

上述方案中,所述步骤s4包括:对任务数据分片获得分片项,将分片项输出至服务系统的服务器;

所述对生产任务数据或灰度任务数据分片包括:

根据分片数对生产任务数据或灰度任务数据分片;将分片数与生产子系统或灰度子系统的所有服务器的总数相除;若相除结果不具有余数,则将相除结果的商作为分片数;若相除结果具有余数,则将相除结果的商作为分片数,将相除结果的余数作为冗余集数;或

根据分片数对生产任务数据或灰度任务数据分片;对生产任务数据或灰度任务数据的任务名进行哈希运算并获得哈希值;或

提取生产任务或灰度任务的任务单元的业务代码,对业务代码赋值形成枚举值,根据枚举值对生产任务或灰度任务分片。

上述方案中,所述将生产分片项或灰度分片项输出至生产子系统或灰度子系统的服务器包括:

若所述相除结果不具有余数,向生产子系统或灰度子系统的每个服务器输出数量为分片数的生产分片项或灰度分片项;若所述相除结果具有余数,向生产子系统或灰度子系统的每个服务器输出数量为分片数的生产分片项或灰度分片项,再将冗余集数的生产分片项或灰度分片项,按照生产子系统或灰度子系统的服务器编号顺序依次追加到相应的服务器中;或

若所述哈希值为奇数,对生产子系统或灰度子系统的服务器的编号进行升序排列,再将所述生产分片项或灰度分片项依次输出至所述生产子系统或灰度子系统的服务器;若所述哈希值为偶数,对生产子系统或灰度子系统的服务器的编号进行降序排列,再将所述生产分片项或灰度分片项依次输出至所述生产子系统或灰度子系统的服务器。

上述方案中,所述步骤s5中,接收所述服务系统执行各分片项后输出的执行结果包括:服务系统接收到分片项后将执行各分片项;若服务系统成功执行各分片项,将接收由服务系统输出的内容为执行成功的执行结果,若服务系统对任一分片项执行失败,将接收由服务系统输出的内容为执行失败的执行结果。

上述方案中,所述步骤s5中,根据所述执行结果管理任务数据及任务信息包括:

若执行结果的内容为执行成功,记录并保存内容所述执行结果;若执行结果的内容为执行失败,根据执行结果再次触发服务系统执行各分片项;若所述服务系统已执行过规定次数的生产任务,所述执行结果的内容仍为执行失败时,记录并保存内容为执行失败的执行结果;或

若执行结果的内容为执行成功,记录并保存内容所述执行结果;若执行结果的内容为执行失败,根据执行结果再次触发服务系统执行各分片项;若所述服务系统已执行过规定次数的生产任务,所述执行结果的内容仍为执行失败时,则删除所述任务数据及任务信息;或

若执行结果的内容为执行成功,记录并保存内容所述执行结果;若执行结果的内容为执行失败,根据执行结果删除所述任务数据及任务信息。

为实现上述目的,本发明还提供一种任务调度管理装置,包括:

创设模块,用于创设命名空间;

任务管理模块,用于提取任务信息,以及用于实例化任务信息,获得任务数据;

关联模块,用于将任务数据与命名空间关联;

分片模块,用于对任务数据分片获得若干个分片项,并将若干个分片项输出至所述服务系统;

任务调度模块,接收所述服务系统执行各分片项后输出的执行结果,并根据所述执行结果管理任务数据及任务信息。

为实现上述目的,本发明还提供一种计算机系统,其包括多个计算机设备,各计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述多个计算机设备的处理器执行所述计算机程序时共同实现上述任一项所述任务调度管理方法的步骤。

为实现上述目的,本发明还提供一种计算机可读存储系统,其包括多个存储介质,各存储介质上存储有计算机程序,所述多个存储介质存储的所述计算机程序被处理器执行时共同实现上述任一项所述任务调度管理方法的步骤。

本发明提供的一种任务调度管理方法、装置、计算机系统及可读存储系统,利用创设模块在同一域名下创设生产命名空间和灰度命名空间,再利用任务管理模块提取任务信息并对其实例化后,最后利用关联模块使生产任务数据与生产命名空间关联,使灰度任务数据与灰度命名空间关联,实现了在同一域名下开展生产任务调度和灰度任务调度,并且保证了生产任务数据和灰度任务数据的隔离,为操作者开展灰度发布提供了便利;

利用分片模块并采用平均分片策略、奇偶数分片策略和枚举值分片策略对所述任务数据分片获得分片项,扩大了适用范围,满足了多种分片需求;

利用任务调度模块并采用优先级策略对任务数据进行了分级管理,其中,高优先级模式主要用于监测重要的任务信息的执行情况,进而保证重要的任务信息能够得到执行,即使不能够被执行也能够被操作者及时获知,并采取相应的补救措施,保证了任务调度工作的可靠性;中优先级模式主要用于监测较为重要的任务信息的执行情况,尽可能的保证了较为重要的任务信息能够得到执行;而低优先级模式则保证了对任务数据的处理及执行效率,进而保证了任务调度工作运行的整体效率。

附图说明

图1为本发明任务调度管理方法实施例一的流程图;

图2为本发明任务调度管理方法实施例一中任务调度管理装置与服务系统之间的工作流程图;

图3为本发明任务调度管理装置实施例二的程序模块示意图;

图4为本发明计算机系统实施例三中计算机设备的硬件结构示意图。

附图标记:

1、任务调度管理装置2、服务系统3、计算机设备

11、创设模块12、任务管理模块13、关联模块

14、分片模块15、任务调度模块31、存储器32、处理器

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供的一种任务调度管理方法、装置、计算机系统及可读存储系统,适用于系统运维技术领域,为任务调度管理装置提供一种基于创设模块、任务管理模块、关联模块、分片模块和任务调度模块的任务调度管理方法,利用创设模块在同一域名下创设生产命名空间和灰度命名空间,再利用任务管理模块提取任务信息并对其实例化后,最后利用关联模块使生产任务数据与生产命名空间关联,使灰度任务数据与灰度命名空间关联,实现了在同一域名下开展生产任务调度和灰度任务调度,并且保证了生产任务数据和灰度任务数据的隔离,为操作者开展灰度发布提供了便利;

利用分片模块并采用平均分片策略、奇偶数分片策略和枚举值分片策略对所述任务数据分片获得分片项,扩大了适用范围,满足了多种分片需求;

利用任务调度模块并采用优先级策略对任务数据进行了分级管理,其中,高优先级模式主要用于监测重要的任务信息的执行情况,进而保证重要的任务信息能够得到执行,即使不能够被执行也能够被操作者及时获知,并采取相应的补救措施,保证了任务调度工作的可靠性;中优先级模式主要用于监测较为重要的任务信息的执行情况,尽可能的保证了较为重要的任务信息能够得到执行;而低优先级模式则保证了对任务数据的处理及执行效率,进而保证了任务调度工作运行的整体效率。

实施例一:

请参阅图1和图2,本实施例的一种任务调度管理方法,利用任务调度管理装置1,包括以下步骤:

s1:创设命名空间(命名空间即namespace);

具体的,所述命名空间包括生产命名空间和灰度命名空间;其中,生产命名空间和灰度命名空间创设在同一域名下。

进一步的,本步骤包括,创设生产命名空间和灰度命名空间。

进一步的,服务系统2包括有生产子系统和灰度子系统,生产命名空间的名称与生产子系统的名称一致,所述灰度命名空间的名称与灰度子系统的名称一致。

进一步的,所述灰度命名空间的名称为在所述生产命名空间的名称的结尾增加“-abt”。

s2:提取并实例化任务信息,获得任务数据;

具体的,所述任务信息可为生产任务或灰度任务,所述任务信息由至少一个任务单元构成。

具体的,访问服务系统2,从服务系统2中提取任务信息,利用客户端数据包实例化任务信息获得任务数据;所述客户端数据包包括任务配置类、任务地址类和任务执行类;所述任务数据包括任务配置信息,任务地址信息和任务执行信息;其中,任务执行信息包括未执行、执行成功和执行失败。

进一步的,所述任务数据可为生产任务数据或灰度任务数据,从生产子系统中提取生产任务,从灰度子系统中提取灰度任务。

进一步的,本步骤包括加载客户端数据包,利用客户端数据包实例化任务信息,获得任务数据;

生产任务数据则包括所述生产任务的任务配置信息,任务地址信息和任务执行信息;

灰度任务数据则包括所述灰度任务的任务配置信息,任务地址信息和任务执行信息。

可选的,所述客户端数据包可为产品资金流客户端数据包,也可为月度指标监视客户端数据包,所述客户端数据包还可为其他用于对生产任务和灰度任务实例化的数据包。

s3:将任务数据与命名空间关联;

具体的,本步骤包括将生产任务数据与生产命名空间关联,将灰度任务数据与灰度命名空间关联,以隔离生产任务数据和灰度任务数据,进而实现隔离生产任务和灰度任务的效果;

进一步的,生产任务数据和灰度任务数据还分别包括领导节点信息;

所述生产任务的领导节点信息通过以下方式确定:

对生产命名空间下的生产任务数据创建字节编号,根据所述字节编号对若干个生产任务数据进行排序,选择该排序中序号最小的生产任务数据作为生产命名空间下所有生产任务数据的领导节点,将生产命名空间下所有的生产任务数据中的领导节点信息,编写为所述领导节点的任务配置信息;

对灰度命名空间下的灰度任务数据创建字节编号,根据所述字节编号对若干个灰度任务数据进行排序,选择该排序中序号最小的灰度任务数据作为灰度命名空间下所有灰度任务数据的领导节点,将灰度命名空间下所有的灰度任务数据中的领导节点信息,编写为所述领导节点的任务配置信息。

s4:对任务数据分片获得若干个分片项;将若干个分片项输出至服务系统2;

其中,所述分片项包括生产分片项和灰度分片项。

具体的,所述步骤s4包括以下步骤:

s41:设定触发时间,使触发调度程序根据触发时间触发任务调度框架;

s42:利用任务调度框架对任务数据分片,并获得若干个分片项;

s43:利用任务调度框架将若干个分片项输出至服务系统2的服务器;

其中,所述分片项可为生产分片项或灰度分片项。将生产分片项输出至生产子系统的服务器,将灰度分片项输出灰度子系统的服务器。

具体的,所述步骤s42基于平均分片策略包括:

s42-01:利用任务调度框架根据分片数对任务数据分片,使生产分片项或灰度分片项的数量与分片数一致;

s42-02:将分片数与生产子系统或灰度子系统的所有服务器的总数相除;

s42-03:若分片数能够被所有生产子系统或灰度子系统的服务器的相除结果不具有余数,则将相除结果的商作为分片数;若分片数不能够被所有生产子系统或灰度子系统的服务器的相除结果具有余数,则将相除结果中的商作为分片数,并将相除结果中的余数作为冗余集数;

进一步的,所述步骤s43基于平均分片策略包括:

若所述相除结果不具有余数,向生产子系统或灰度子系统的每个服务器输出数量为分片数的生产分片项或灰度分片项;

若所述相除结果具有余数,向生产子系统或灰度子系统的每个服务器输出数量为分片数的生产分片项或灰度分片项,再将冗余集数的生产分片项或灰度分片项,按照生产子系统或灰度子系统的服务器编号顺序依次追加到相应的服务器中;

例如:

如果所有的生产子系统的服务器的总数为3台,分片数为8,则每台服务器分到的生产分片项是:1=[0,1,6],2=[2,3,7],3=[4,5];

如果所有的生产子系统的服务器的总数为3台,分片数为10,则每台服务器分到的生产分片项是:1=[0,1,2,9],2=[3,4,5],3=[6,7,8]。

具体的,所述步骤s42基于奇偶数分片策略包括:

s42-11:利用任务调度框架根据分片数对生产任务数据或灰度任务数据分片,使生产分片项或灰度分片项的数量与分片数一致;

s42-12:利用任务调度框架对生产任务数据或灰度任务数据的任务名进行哈希运算并获得哈希值;

进一步的,所述步骤s43基于奇偶数分片策略包括:

若所述哈希值为奇数,对生产子系统或灰度子系统的服务器的编号进行升序排列,再将所述生产分片项或灰度分片项依次输出至所述生产子系统或灰度子系统的服务器;

若所述哈希值为偶数,对生产子系统或灰度子系统的服务器的编号进行降序排列,再将所述生产分片项或灰度分片项依次输出至所述生产子系统或灰度子系统的服务器;

例如:生产子系统有3台服务器,分片数为2片,对生产任务数据的任务名进行哈希运算并获得哈希值为奇数,则每台服务器分到的生产分片项是:1=[0],2=[1],3=[];生产子系统有3台服务器,分片数为2片,对生产任务数据的任务名进行哈希运算并获得哈希值为偶数,则每台服务器分到的生产分片项是:3=[0],2=[1],1=[]。

具体的,所述步骤s42基于枚举值分片策略包括:

s42-21:提取生产任务或灰度任务的任务单元的业务代码;

s42-22:对业务代码赋值形成枚举值;

s42-23:利用任务调度框架根据枚举值对生产任务或灰度任务分片,将具有同一枚举值的任务单元归于同一生产分片项或灰度分片项。

进一步的,将所述生产分片项或灰度分片项依次输出至所述生产子系统或灰度子系统的服务器

可选的,任务调度框架为quartz(quartz是opensymphony开源组织在jobscheduling领域又一个开源项目)应用。

可选的,枚举值可为时间、地点、人物或其他的命名实体。

例如:生产任务的任务单元的业务代码为0、1、2,其中,0表示北京,1表示上海,2表示广州;对业务代码赋值形成枚举值,即0=北京,1=上海,2=广州;

生产子系统的服务器分别为a,b,c,那么生产子系统中各服务器的生产分片项将由a=[0],b=[1],c=[2],转为a=[北京],b=[上海],c=[广州],有利于操作人员对分片项的管理。

s5:接收所述服务系统2执行各分片项后输出的执行结果,并根据所述执行结果管理任务数据及任务信息,以实现对生产任务的任务调度和对灰度任务的任务调度。

其中,在获取执行结果之前,生产任务数据或灰度任务数据的任务执行信息均为未执行;

具体的,所述步骤s5基于高优先级模式包括:

s5-01服务系统2接收到所述若干个分片项后将执行各分片项;

s5-02若服务系统2成功执行各分片项,将接收由服务系统2输出的内容为执行成功的执行结果,若服务系统2对任一分片项执行失败,将接收由服务系统2输出的内容为执行失败的执行结果;

s5-03若执行结果的内容为执行成功,记录并保存内容所述执行结果,并将任务数据的任务执行信息修改为执行成功;若执行结果的内容为执行失败,根据执行结果再次触发服务系统2执行各分片项;若所述服务系统2已执行过规定次数的生产任务,所述执行结果的内容仍为执行失败时,记录并保存内容为执行失败的执行结果,并将任务数据的任务执行信息修改为执行失败。

可选的,所述规定次数可为三次。

进一步的,所述步骤s5基于中优先级模式包括:

s5-11:服务系统2接收到所述若干个分片项后将执行各分片项;

s5-12:若服务系统2成功执行各分片项,将接收由服务系统2输出的内容为执行成功的执行结果,若服务系统2对任一分片项执行失败,将接收由服务系统2输出的内容为执行失败的执行结果;

s5-13:若执行结果的内容为执行成功,记录并保存内容所述执行结果,并将任务数据的任务执行信息修改为执行成功;若执行结果的内容为执行失败,根据执行结果再次触发服务系统2执行各分片项;若所述服务系统2已执行过规定次数的生产任务,所述执行结果的内容仍为执行失败时,则删除所述任务数据及任务信息。

可选的,所述规定次数可为三次。

具体的,所述步骤s5基于低优先级模式包括:

s5-21:服务系统2接收到所述若干个分片项后将执行各分片项;

s5-22:若服务系统2成功执行各分片项,将接收由服务系统2输出的内容为执行成功的执行结果,若服务系统2对任一分片项执行失败,将接收由服务系统2输出的内容为执行失败的执行结果;

s5-23:若执行结果的内容为执行成功,记录并保存内容所述执行结果,并将任务数据的任务执行信息修改为执行成功;若执行结果的内容为执行失败,根据执行结果删除所述任务数据及任务信息。

实施例二:

请继续参阅图3,示出了一种任务调度管理装置1,包括:

创设模块11,用于创设命名空间;

任务管理模块12,用于提取任务信息,以及用于实例化任务信息,获得任务数据;所述实例化模块加载有客户端数据包;

关联模块13,用于将任务数据与命名空间关联;

分片模块14,用于对任务数据分片获得若干个分片项,并将若干个分片项输出至所述服务系统2;所述分片模块14具有触发调度程序和任务调度框架,并可设定触发时间;

任务调度模块15,用于触发服务系统2执行各分片项,以及获取执行结果。

可选的,所述创设模块11为zookeeper(zookeeper是一个分布式的,开放源码的分布式应用程序协调服务)。

本技术方案基于互联网运维,利用创设模块11、任务管理模块12和关联模块13,实现了在同一域名下完成生产环境发布和灰度环境发布的效果;利用分片模块14和任务调度模块15起到了在生产环境以及灰度环境下,对生产任务数据和灰度任务数据发布过程的优化作用。

实施例三:

为实现上述目的,本发明还提供一种计算机系统,该计算机系统包括多个计算机设备3,实施例二的任务调度管理装置1的组成部分可分散于不同的计算机设备中,计算机设备可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器31、处理器32,如图4所示。需要指出的是,图4仅示出了具有组件-的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

本实施例中,存储器31(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器31可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器31也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器31还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器31通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例一的任务调度管理装置的程序代码等。此外,存储器31还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器32在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器32通常用于控制计算机设备的总体操作。本实施例中,处理器32用于运行存储器31中存储的程序代码或者处理数据,例如运行任务调度管理装置,以实现实施例一的任务调度管理方法。

实施例四:

为实现上述目的,本发明还提供一种计算机可读存储系统,其包括多个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器32执行时实现相应功能。本实施例的计算机可读存储介质用于存储任务调度管理装置,被处理器32执行时实现实施例一的任务调度管理方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1