System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及批处理任务调度,尤其涉及一种基于通用工作流的批处理任务调度方法及系统。
技术介绍
1、目前已有的批处理调度技术主要集中在解决调度规则的配置化、调度资源的高效利用、调度任务容错的处理上,并没有一整套完整的技术可以用于解决复杂场任务依赖场景下批处理任务的编排调度上,现有的任务编排调度大致可以分为以下几类:
2、1、定时任务方案,通过给相互依赖任务设置先后不同的触发时间来解决任务依赖问题;
3、2、父子任务方案,通过给任务设置父任务,只有在父任务执行成功后,子任务才能执行;
4、3、有向无环图方案,通过dag可视化编辑工具实现有向无环的在线编辑和发布,在图中描述任务之间的依赖关系。
5、现有的任务编排调度方法存在一些缺陷:
6、1、定时任务的方案实现比较简单,可以通过时间先后顺序间接实现任务上下之间的依赖关系,但是因为每个任务在执行态的不可预知性,特殊情况下上游任务因为业务处理量大而没有执行,但是下游任务到达执行时间点,导致下游任务在上游任务没有执行完成后执行,导致任务编排错乱;
7、2、父子任务方案,只能解决一个上游任务多个下游任务场景下的任务依赖关系,因为下游任务不能配置多个父任务,导致依赖关系单一;
8、3、有向无环图方案,该方案需要依赖前端复杂的有向图编辑工具实现,每个任务调度都需要单独进行任务编排流程图的开发,对开发人员的技术要求比较高。
技术实现思路
1、为解决现有技术的不足,本
2、为实现以上目的,本专利技术所采用的技术方案包括:
3、一种基于通用工作流的批处理任务调度方法,其特征在于,包括:
4、s1.构建任务模型,所述任务模型包括任务包、任务组、任务层、任务、作业;
5、s2.获取任务配置,将所述任务配置解析成任务组,循环调用任务组判断流程,判断所述任务组是否可以执行,进入任务组的执行流程;
6、s3.将任务组分解得到任务层,所述任务层配置有多个任务,判断所述任务是否可以执行,进入任务的执行流程,执行任务层的任务;
7、s4.进入作业的执行流程,异步发起作业执行,同步轮询查询作业执行状态,当作业查询结果为成功时进行下一个作业的执行流程。
8、进一步地,所述任务包用于区分不同业务的任务流程的分类管理,所述任务层用于描述任务与任务之间的依赖关系,所述任务用于配置任务属性,所述任务属性包括任务类型、是否延期、任务分片数。
9、进一步地,所述循环调用任务组判断流程,判断所述任务组是否可以执行,进入任务组的执行流程,包括:
10、调用所述任务组的执行日,根据所述任务组的调度规则判断当日是否可以执行,所述调度规则包括指定的执行日和执行频率,所述调度规则为可配置的;
11、当当日不是所述任务组的执行日,则终止当前任务组的执行流程,继续轮询下一个任务组;
12、当当日是所述任务组的执行日,则进入当前任务组的执行流程。
13、进一步地,所述任务组的执行流程,包括:
14、所述任务组的执行流程将所述任务组分解成任务层,将所述任务层按照优先级高低排序,先执行优先级高的任务层;
15、并发执行同一任务层的任务,同步查询任务执行结果;
16、当所有任务都执行成功,则进入下一任务层。
17、更进一步地,所述同步查询任务执行结果,包括:
18、同步轮询查询任务执行结果,所述轮询的频率与判断所述任务是否可以执行的频率一致;
19、当所述任务执行结果为成功时,进行同一任务层下一个任务执行结果的查询,当同一任务层的所有任务执行结果为成功时,进行下一任务层的执行;
20、当所述任务执行结果为失败时,则阻塞所述任务的执行流程。
21、进一步地,所述判断所述任务是否可以执行,包括:
22、根据所述任务配置判断所述任务是否可以执行;
23、当任务延期则按照延期时间等待任务执行。
24、本专利技术还涉及一种基于通用工作流的批处理任务调度系统,其特征在于,包括:
25、模型构建模块,用于构建任务模型,所述任务模型包括任务包、任务组、任务层、任务、作业;
26、配置解析模块,用于获取任务配置,将所述任务配置解析成任务组,循环调用任务组判断流程,判断所述任务组是否可以执行,进入任务组的执行流程;
27、任务执行模块,用于将任务组分解得到任务层,所述任务层配置有多个任务,判断所述任务是否可以执行,进入任务的执行流程,执行任务层的任务;
28、作业执行模块,用于进入作业的执行流程,异步发起作业执行,同步轮询查询作业执行状态,当作业查询结果为成功时进行下一个作业的执行流程。
29、本专利技术还涉及一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
30、本专利技术还涉及一种电子设备,其特征在于,包括处理器和存储器;
31、所述存储器,用于存储程序指令;
32、所述处理器,用于通过调用程序指令,执行上述的方法。
33、本专利技术还涉及一种计算机程序产品,包括计算机程序和/或指令,其特征在于,该计算机程序和/或指令被处理器执行时实现上述方法的步骤。
34、本专利技术的有益效果为:
35、采用本专利技术所述一种基于通用工作流的批处理任务调度方法,可以解决大量批处理任务相互依赖场景下的任务调度的高效开发问题,通过对任务模型的分层分类实现任务调度分层管理,实现复杂场景任务依赖的编排调度以及任务关系的可视化;基于一套通用的工作流进行任务调度的驱动,业务开发人员不用关注具体流程图的绘制,降低开发门槛;通过批处理任务的颗粒化,把原有比较耗时的大任务拆解成不同的小任务、小作业,多层次任务模型使得批量任务执行单元更细化,有利于实现分布式任务执行,实现任务调度资源的高效利用;实现任务调度、任务管理、批量数据三者之间的数据隔离和系统隔离,有利于业务开发人员把关注点集中在业务的批量任务处理上;突破传统cron定时表达式的调度规则,可以根据业务系统制定多样化的调度规则。
本文档来自技高网...【技术保护点】
1.一种基于通用工作流的批处理任务调度方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述任务包用于区分不同业务的任务流程的分类管理,所述任务层用于描述任务与任务之间的依赖关系,所述任务用于配置任务属性,所述任务属性包括任务类型、是否延期、任务分片数。
3.如权利要求1所述的方法,其特征在于,所述循环调用任务组判断流程,判断所述任务组是否可以执行,进入任务组的执行流程,包括:
4.如权利要求1所述的方法,其特征在于,所述任务组的执行流程,包括:
5.如权利要求4所述的方法,其特征在于,所述同步查询任务执行结果,包括:
6.如权利要求1所述的方法,其特征在于,所述判断所述任务是否可以执行,包括:
7.一种基于通用工作流的批处理任务调度系统,其特征在于,包括:
8.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
9.一种电子设备,其特征在于,包括处理器和存储器;
10.一种
...【技术特征摘要】
1.一种基于通用工作流的批处理任务调度方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述任务包用于区分不同业务的任务流程的分类管理,所述任务层用于描述任务与任务之间的依赖关系,所述任务用于配置任务属性,所述任务属性包括任务类型、是否延期、任务分片数。
3.如权利要求1所述的方法,其特征在于,所述循环调用任务组判断流程,判断所述任务组是否可以执行,进入任务组的执行流程,包括:
4.如权利要求1所述的方法,其特征在于,所述任务组的执行流程,包括:
5.如权利要求4所述的方法,其特征在于,所述同步...
【专利技术属性】
技术研发人员:李军,
申请(专利权)人:中信银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。