一种调度任务的发布系统及方法与流程

专利2022-06-30  46


本发明涉及数据处理技术领域,具体地说是一种调度任务的发布系统及方法。



背景技术:

随着社会信息化和软件技术的不断发展,传统独立系统的堆砌软件架构已不能满足时常变化的业务需要和越来越庞大的体积结构以及高昂的维护成本,常常因为牵一发而动全身。因此越来越多的软件从单体式应用程序转向了微服务架构和大数据平台技术框架,这种转变在带来优势和便利的同时,问题也油然而生。因开发语言多种多样,开发人员的背景差异很大,这就产生出很多不同类型的程序(任务)运行在大数据平台之上,如何实现各种任务按照要求执行调度,实现各任务间的通信,减少因调度逻辑对原有业务代码的改造,尽快实现调度任务的发布和运行成了问题的关键,摆在首位的问题是如何做到开发迅捷、操作简单、开箱即用。

传统的做法通常是对原有代码逻辑进行改造,通过使用相同的api接口,完成对程序的调用和执行。程序开发人员既需要考虑调度任务的实现逻辑、又需要考虑因调度任务可能部署于不同操作系统而带来的兼容性问题、还需顾及任务具体调度策略等方方面面,由此而来开发工作量显著上升,改造时间周期拉长,投入资源及成本升高,效率低、维护难,无法对于需求做到快速响应。

随着系统中发布的调度任务数量越来越多,如何对这些基于不同语言和调用方式的任务进行统一管理和监控,实现任务间的协同工作、相互通信、异常处理尤为关键。



技术实现要素:

本发明的目的是针对以上不足,提供一种基于配置的能够快速发布的调度任务的发布系统及方法。

本发明所采用技术方案是:

一种调度任务的发布方法,包括如下步骤:

s1、将待发布的调度任务交由相应任务执行器负责调度执行;

s2、为所述调度任务配备运行所需的硬件调度资源;

s3、将各所述调度任务按逻辑关系进行关联,组合成调度作业;

s4、为所述调度作业中的各调度任务建立调度策略;

s5、将所述调度作业进行发布并启动执行。

具体的,本发明在步骤s1中,将待发布的调度任务的具体执行信息输入至任务执行器中,将调度任务的具体执行信息输入至任务执行器的过程包括如下步骤:

s11、填写调度任务的名称、功能及版本描述信息;

s12、选择调度任务的类型;

s13、设置调度任务的调用方式;

s14、设置调度任务的参数信息;

s15、选择调度任务的程序执行模式。

进一步的,本发明在步骤s12中,所述调度任务的类型包括程序任务和数据库任务,所述程序任务的类型包括.net、java、python、golang、c 、shell和exe,所述数据库任务包括sql语句、存储过程和数据库作业。

进一步的,本发明在步骤s13中,所述调度任务的调用方式包括程序反射调用和web服务访问,所述web服务访问包括soap类型服务和rest类型服务。

具体的,本发明在步骤s2中,为所述调度任务配备运行所需的硬件调度资源的过程包括如下步骤:

s21、注册并统一管理执行调度任务的硬件资源,所述硬件资源为单一主机资源或由多台主机资源组成的资源池;

s22、设置硬件资源的承载上限,当硬件资源的利用率达到设置的承载上限时,该硬件资源不再执行新分配的调度任务,所分配的调度任务进入到待执行队列等待。

具体的,本发明步骤s3中,基于流程引擎,采用可视化界面,将所有调度任务按前后执行顺序进行关联,设置调度作业中各调度任务的依赖关系、执行顺序、执行调节和通信数据。

具体的,本发明步骤s4中,所述调度策略包括时间策略、路由策略、阻塞策略和异常处理策略;其中:

所述时间策略用于设置各调度任务的执行时间;

所述路由策略用于为各调度任务分配调度硬件资源的分配规则;

所述阻塞策略用于在调度任务的硬件资源达不到要求时的处理规则;

所述异常处理策略用于在任务执行器出现执行异常时的处理规则。

本发明还提供一种调度任务的发布系统,包括任务执行器、调度资源、流程引擎、调度策略集和发布单元,其中:

任务执行器用于存储相应调度任务的执行信息,并驱动执行调度任务;

调度资源用于为调度任务执行工作提供硬件资源支持;

流程引擎用于将各调度任务建立逻辑顺序关系,组合成调度作业;

调度策略集用于为调度任务的运行限定逻辑规则;

发布单元用于发布调度作业并启动运行。

作为进一步的优化,本发明所述调度任务的执行信息包括调度任务基本信息、调度任务的类型、调度任务的调用方式、调度任务的参数信息和调度任务的程序执行模式,所述调度任务的基本信息包括名称、功能和版本描述信息。

作为进一步的优化,本发明所述调度策略集包括包括时间策略、路由策略、阻塞策略和异常处理策略;其中:

所述时间策略用于设置各调度任务的执行时间;

所述路由策略用于为各调度任务分配调度硬件资源的分配规则;

所述阻塞策略用于在调度任务的硬件资源达不到要求时的处理规则;

所述异常处理策略用于在任务执行器出现执行异常时的处理规则。

本发明具有以下优点:

1、本发明的发布方法采用任务执行器的设计,可支持多种任务类型和调用方式,屏蔽了不同语言、不同类型程序的内部实现,仅需关注任务如何执行和调用即可,即使在程序代码改变,设置采用其他语言重构后,仍可仅通过简单调整调用配置信息,便可重新发布调度任务;

2、本发明的发布方法将任务的具体执行内容、任务间的关联依赖、任务的执行载体资源及任务的调度逻辑的设置区分开来,体现了模块化的设计思想和对复杂功能及业务逻辑的解耦;

3、本发明的发布方法通过对发布调度任务时各配置环节模块化的拆分,将原有复杂的调度任务发布流程分解开来,将不同阶段交由程序开发人员、硬件管理人员、实施维护人员负责,只需各自专注于自身工作相关领域即可,各司其职,减少不必要的资源投入;

4、本发明的发布系统通过基于流程引擎的可视化界面配置,可轻松设置各任务间的依赖关系、执行顺序、执行条件、通信数据等内容。便于多个调度任务的搭配组合、协同工作,从而支持复杂的业务场景和工作内容;

5、本发明的发布系统提供丰富的调度策略配置,满足不同调度场景需要,提高了调度逻辑的灵活性,降低了配置难度,可随时因业务改变进行调整。

6、本发明的发布系统发布后的调度任务统一进行管理和监控,通过可视化界面提供运行监控、统计报表、日志记录、异常预警;

7、本发明基于上述特点适用于大数据及微服务架构程序,便于快速将原有代码发布为调度任务,节省了大量开发成本、测试成本以及实施成本,极大提升了工作效率,显著降低了工作难度。

附图说明

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

下面结合附图对本发明进一步说明:

图1为本发明的方法的流程示意图;

图2为本发明的系统的组成示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。

需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。在本发明实施例中的“多个”,是指两个或两个以上。

本发明实施例中的属于“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,单独存在b,同时存在a和b这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”关系。

如图2所示,本发明提供一种调度任务的发布系统的实施例,所述发布系统包括任务执行器、调度资源、流程引擎、调度策略集和发布单元,其中:

任务执行器用于存储相应调度任务的执行信息,并驱动执行调度任务;所述调度任务的执行信息包括调度任务基本信息、调度任务的类型、调度任务的调用方式、调度任务的参数信息和调度任务的程序执行模式,所述调度任务的基本信息包括名称、功能和版本描述信息。

调度资源用于为调度任务执行工作提供硬件资源支持;所述调度资源可以为单一主机资源,也可以是多台主机资源组成的多个资源池,每个资源池又可成为一个独立的硬件资源单元参与任务的执行。

流程引擎用于将各调度任务建立逻辑顺序关系,组合成调度作业;

调度策略集用于为调度任务的运行限定逻辑规则;所述调度策略集包括时间策略、路由策略、阻塞策略和异常处理策略;其中:所述时间策略用于设置各调度任务的执行时间;所述路由策略用于为各调度任务分配调度硬件资源的分配规则;所述阻塞策略用于在调度任务的硬件资源达不到要求时的处理规则;所述异常处理策略用于在任务执行器出现执行异常时的处理规则。

发布单元用于发布调度作业并启动运行。

如图1所示,本实施例还提供一种调度任务的发布方法,所述发布方法包括如下步骤:

s1、将待发布的调度任务交由相应任务执行器负责调度执行,具体的需要通过如下步骤将待发布的调度任务的具体执行信息输入至任务执行器中:

s11、填写调度任务的名称、功能及版本描述信息;

s12、选择调度任务的类型;所述调度任务的类型包括程序任务和数据库任务,所述程序任务的类型包括.net、java、python、golang、c 、shell和exe,所述数据库任务包括sql语句、存储过程和数据库作业。

s13、设置调度任务的调用方式;所述调度任务的调用方式包括程序反射调用和web服务访问,所述web服务访问包括soap类型服务和rest类型服务。

s14、设置调度任务的参数信息;根据s12调度任务的类型和步骤s13的调度任务的调用方式,填写调用参数信息,例如程序的包名、类名、方法名、出参入参、服务地址和存储过程名称等信息。

s15、选择调度任务的程序执行模式,所述调度任务的程序执行模式包括多例模式和单例模式。

s2、为所述调度任务配备运行所需的硬件调度资源;具体的通过如下步骤为调度任务配备硬件调度资源:

s21、注册并统一管理执行调度任务的硬件资源,所述硬件资源为单一主机资源或由多台主机资源组成的资源池,同时每个资源池又可成为一个独立的硬件资源单元参与调度任务的执行;

s22、设置硬件资源的承载上限,当硬件资源的利用率达到设置的承载上限时,该硬件资源不再执行新分配的调度任务,所分配的调度任务进入到待执行队列等待。

s3、将各所述调度任务按逻辑关系进行关联,组合成调度作业;运动基于流程引擎的技术,采用可视化界面,如显示屏等,将所有调度任务按前后执行顺序进行关联,组合成一个调度作业,设置调度作业中各调度任务的依赖关系、执行顺序、执行调节和通信数据。

s4、为所述调度作业中的各调度任务建立调度策略;所述调度策略包括时间策略、路由策略、阻塞策略和异常处理策略;其中:

时间策略:通过可视化的界面或cron表达式设置调度任务的执行时间。

路由策略:指调度任务通过何种规则分配给s2中设置的调度资源,如指定主机、随机选择、轮询分配和负载率优先等,轮询分配又包括时间片轮询和加权轮询。

阻塞策略:因调度任务对独占性资源的请求得不到满足,或因调度过于密集的执行器来不及处理时的处理策略。例如:超时抢占、等待队列等。

异常处理策略:当调度任务执行器执行异常时的处理策略,包括失败重试次数、失败重试间隔、是否继续执行或阻塞后续程序、选择异常处理任务。

s5、将所述调度作业进行发布并启动执行,并通过可视化界面提供运行监控、统计报表、日志记录和异常预警的信息展示。

下面以本申请人开发的企业epr软件财务模块的一调度项目场景为例,场景存在如下任务要求:

1)在每周工作日0点启动五台分别运行于不同服务器的财务共享平台制证机器人任务,机器人的执行程序基于python语言编写;

2)五台机器人程序均运行完成后,启动oracle数据库中统计报表自动计算存储过程;

3)待统计报表计算完成,通过访问restapi服务接口,启动资金分析服务,完成资金分析工作。

将上述场景的任务要求采用本发明的调度任务的发布方法的具体配置方式如下:

s1、设置任务执行器;

a)创建任务执行器a,用来执行财务共享平台制证机器人任务。填写执行器相关描述信息,设置任务类型为python,调用方式使用反射调用,配置相关调用参数。因该任务可并发运行,所以设置任务模式为多例模式。

b)创建任务执行器b,用来执行统计报表自动计算任务。任务类型选择存储过程任务,数据库类型为oracle,填写存储过程名称。设置任务模式为单例模式。

c)创建任务执行器c,用来执行资金分析任务。任务类型选择web服务,采用rest方式调用,填写服务地址、参数等信息。设置任务模式为单例模式。

s2、设置调度资源;

分别注册用于运行调度任务的五台服务器se1-se5,设置服务器ip地址、操作系统类型等其他相关信息,并分别设置每台服务器的资源使用率上限,设置完成后,将服务器se1-se5组成资源池p1。

s3、建立调度作业;

新建调度作业j1,并进行如下配置:

a)选择任务执行器a,作为调度作业的第一步。设置参数变量a_r1用于保存任务执行器a的执行结果,“success”表示执行成功,“failure”表示执行失败。

b)选择任务执行器b,作为调度作业的第二步。由于任务执行器a的执行模式为多例模式,可并发执行多个,因此设置任务执行器b的执行条件为任务执行器a的所有实例的返回结果参数a_r1的值全为“success”才可执行任务执行器b。

c)选择任务执行器c,作为调度作业的第三步。因任务执行器b无返回值参数,因此设置任务执行器c的执行条件为任务执行器b执行完成且无异常报错。

s4、制定调度策略;

选择调度作业j1,并进行如下配置:

a)选择调度作业j1步骤中的任务执行器a,设置任务执行器a的时间策略为每个周一到周五的0点执行,当前采用cron表达式形式,表达式的值设为“000?*2-6*”;任务数量设置为“5”,表示同时执行五个程序;路由策略为随机分配,表示将任务执行器a的五个实例随机分配到不同的五个主机中执行。

b)选择调度作业j1步骤中的任务执行器b,设置任务执行器b的时间策略为任务执行器a的执行结束;异常处理策略为中止后续任务;设置预警策略为给管理员发送邮件。

c)选择调度作业j1步骤中的任务执行器c,c的相关调度策略设置与b同理。

s5、发布调度作业;将通过以上步骤设置完成的调度作业j1进行发布并启动执行。

以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。


技术特征:

1.一种调度任务的发布方法,其特征在于:包括如下步骤:

s1、将待发布的调度任务交由相应任务执行器负责调度执行;

s2、为所述调度任务配备运行所需的硬件调度资源;

s3、将各所述调度任务按逻辑关系进行关联,组合成调度作业;

s4、为所述调度作业中的各调度任务建立调度策略;

s5、将所述调度作业进行发布并启动执行。

2.根据权利要求1所述的发布方法,其特征在于:在步骤s1中,将待发布的调度任务的具体执行信息输入至任务执行器中,将调度任务的具体执行信息输入至任务执行器的过程包括如下步骤:

s11、填写调度任务的名称、功能及版本描述信息;

s12、选择调度任务的类型;

s13、设置调度任务的调用方式;

s14、设置调度任务的参数信息;

s15、选择调度任务的程序执行模式。

3.根据权利要求2所述的发布方法,其特征在于:在步骤s12中,所述调度任务的类型包括程序任务和数据库任务,所述程序任务的类型包括.net、java、python、golang、c 、shell和exe,所述数据库任务包括sql语句、存储过程和数据库作业。

4.根据权利要求2所述的发布方法,其特征在于:在步骤s13中,所述调度任务的调用方式包括程序反射调用和web服务访问,所述web服务访问包括soap类型服务和rest类型服务。

5.根据权利要求1所述的发布方法,其特征在于:在步骤s2中,为所述调度任务配备运行所需的硬件调度资源的过程包括如下步骤:

s21、注册并统一管理执行调度任务的硬件资源,所述硬件资源为单一主机资源或由多台主机资源组成的资源池;

s22、设置硬件资源的承载上限,当硬件资源的利用率达到设置的承载上限时,该硬件资源不再执行新分配的调度任务,所分配的调度任务进入到待执行队列等待。

6.根据权利要求1所述的发布方法,其特征在于:步骤s3中,基于流程引擎,采用可视化界面,将所有调度任务按前后执行顺序进行关联,设置调度作业中各调度任务的依赖关系、执行顺序、执行调节和通信数据。

7.根据权利要求1所述的发布方法,其特征在于:步骤s4中,所述调度策略包括时间策略、路由策略、阻塞策略和异常处理策略;其中:

所述时间策略用于设置各调度任务的执行时间;

所述路由策略用于为各调度任务分配调度硬件资源的分配规则;

所述阻塞策略用于在调度任务的硬件资源达不到要求时的处理规则;

所述异常处理策略用于在任务执行器出现执行异常时的处理规则。

8.一种调度任务的发布系统,其特征在于:包括任务执行器、调度资源、流程引擎、调度策略集和发布单元,其中:

任务执行器用于存储相应调度任务的执行信息,并驱动执行调度任务;

调度资源用于为调度任务执行工作提供硬件资源支持;

流程引擎用于将各调度任务建立逻辑顺序关系,组合成调度作业;

调度策略集用于为调度任务的运行限定逻辑规则;

发布单元用于发布调度作业并启动运行。

9.根据权利要求8所述的调度任务的发布系统,其特征在于:所述调度任务的执行信息包括调度任务基本信息、调度任务的类型、调度任务的调用方式、调度任务的参数信息和调度任务的程序执行模式,所述调度任务的基本信息包括名称、功能和版本描述信息。

10.根据权利要求9所述的调度任务的发布系统,其特征在于:所述调度策略集包括包括时间策略、路由策略、阻塞策略和异常处理策略;其中:

所述时间策略用于设置各调度任务的执行时间;

所述路由策略用于为各调度任务分配调度硬件资源的分配规则;

所述阻塞策略用于在调度任务的硬件资源达不到要求时的处理规则;

所述异常处理策略用于在任务执行器出现执行异常时的处理规则。

技术总结
本发明公开了一种调度任务的发布系统及方法,本发明包括如下步骤:S1、将待发布的调度任务交由相应任务执行器负责调度执行;S2、为所述调度任务配备运行所需的硬件调度资源;S3、将各所述调度任务按逻辑关系进行关联,组合成调度作业;S4、为所述调度作业中的各调度任务建立调度策略;S5、将所述调度作业进行发布并启动执行。本发明的发布方法采用任务执行器的设计,可支持多种任务类型和调用方式,屏蔽了不同语言、不同类型程序的内部实现,仅需关注任务如何执行和调用即可,即使在程序代码改变,设置采用其他语言重构后,仍可仅通过简单调整调用配置信息,便可重新发布调度任务。

技术研发人员:王豪森;简闻;苏鹏;苏哲浩
受保护的技术使用者:山东浪潮通软信息科技有限公司
技术研发日:2020.01.10
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-59642.html

最新回复(0)