基于MQ和关系型数据库的作业流实现方法及调度系统技术方案

技术编号:34912058 阅读:16 留言:0更新日期:2022-09-15 07:00
本发明专利技术涉及一种基于MQ和关系型数据库的作业流实现方法及调度系统,该方法包括以下步骤:步骤S1、作业触发模块发起新任务,将配置好的作业计划表中的第一个任务对应的MQ消息写入任务队列;步骤S2、作业调度模块中的父进程实时监听所述任务队列,从任务队列读取MQ消息,找到所述MQ消息任务在作业计划表中的位置后,写执行MQ消息到执行队列,并根据执行状态更新登记新任务,发起下一个任务MQ;步骤S3、任务执行模块从执行队列读取MQ消息,执行结束后,同步或异步回复执行结果。与现有技术相比,本发明专利技术可通过简单配置顺序执行的各项任务,实现作业流自动运行,且具有同时支持同异步、失败跳转以及异常断点续做的优点。败跳转以及异常断点续做的优点。败跳转以及异常断点续做的优点。

【技术实现步骤摘要】
基于MQ和关系型数据库的作业流实现方法及调度系统


[0001]本专利技术涉及作业调度控制
,尤其是涉及一种基于MQ和关系型数据库的作业流实现方法及调度系统。

技术介绍

[0002]在银行系统中,往往需要对操作对象(例如一个文本)按顺序完成一组交易(任务)。
[0003]经过检索,中国专利CN112613840B公开了一种作业调度控制方法,该方法包括:响应于任务执行指令,获取预设的工作流任务状态表;根据任务执行指令和任务状态表确定待执行任务的作业状态;根据待执行任务的作业状态确定作业调度顺序;控制待执行任务按照作业调度顺序执行待执行任务。该专利技术通过待执行任务的作业状态信息确定作业调度顺序,作业调度顺序可以由任务执行指令和预设的工作流任务状态表确定,进而得到待执行任务的作业调度,该专利技术由作业状态信息得到作业调度,根据作业调度顺序执行待执行任务,可以减少和缩短任务的作业时长,提高作业效率。
[0004]然而,上述技术难以同时支持同步、异步任务、作业断点续做和失败任务跳转,亟需设计一种实现上述功能的作业调动系统及作业流实现方法。

技术实现思路

[0005]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供了一种基于MQ和关系型数据库的作业流实现方法及调度系统,该方法可通过简单配置顺序执行的各项任务,实现作业流自动运行,可同时支持同步、异步任务、作业断点续做和失败任务跳转。
[0006]本专利技术的目的可以通过以下技术方案来实现:
[0007]根据本专利技术的第一方面,提供了一种基于MQ和关系型数据库的数据流实现方法,该方法包括以下步骤:
[0008]步骤S1、作业触发模块发起新任务,将配置好的作业计划表中的第一个任务对应的MQ消息写入任务队列;
[0009]步骤S2、作业调度模块中的父进程实时监听所述任务队列,从任务队列读取MQ消息,找到所述MQ消息任务在作业计划表中的位置后,写执行MQ消息到执行队列,并根据执行状态更新登记新任务,发起下一个任务MQ;
[0010]步骤S3、任务执行模块从执行队列读取MQ消息,执行结束后,同步或异步回复执行结果。
[0011]优选地,所述步骤S2包括以下子步骤:
[0012]步骤S21、作业调度模块中的父进程实时监听所述任务队列,从任务队列读取MQ消息,并fork子进程处理;
[0013]步骤S22、子进程按照作业调度接口解析读取到的MQ消息,并对任务执行记录表中的任务ID进行空值判断;若任务ID为空,则根据作业编号在作业计划表查询对应作业的第
一项任务各项信息后,转步骤S26,否则,转步骤S23;
[0014]步骤S23、判断任务执行记录表是否存在相应任务,若不存在则视为无效MQ消息,转步骤S27;若任务执行记录表存在相应任务,则转步骤S24;
[0015]步骤S24、判断回复项内容是否为回复消息,若是,转步骤S25;若否,按照任务执行接口在执行队列中写入MQ消息,此时,若从作业计划表中查询任务为同步执行任务,则从回复队列中读取回复消息,按照作业调度接口解析MQ消息后,转步骤S25,否则转步骤S27;
[0016]步骤S25、更改该项任务的状态,并依据当前状态从作业计划表中查询下一项任务信息或失败跳转任务信息,转步骤S26;
[0017]步骤S26、为新任务生成任务ID,将新任务插入任务执行记录表,按照作业调度接口在任务队列中写入MQ消息;
[0018]步骤S27、退出子进程。
[0019]优选地,所述作业计划表的字段包括作业编号、任务编号、任务名称、同异步标志、失败跳转任务编号;其中,“作业编号+任务编号”为主键。
[0020]优选地,所述任务执行记录表的字段包括任务ID、操作对象名、作业编号、任务编号、任务名称、开始时间、结束时间和任务执行状态;其中,任务ID为主键。
[0021]优选地,所述作业调度接口对应的字段包括操作对象名、任务ID、作业编号以及回复内容;
[0022]所述任务ID由作业调度模块序列生成,每个任务的任务ID唯一,若任务ID为空值,则该任务为作业流中的第一项任务;所述回复内容为成功、失败和新任务。
[0023]优选地,所述作业调度接口对应的字段包括操作对象名、任务ID、交易码和触发时间。
[0024]优选地,所述步骤S2中任务队列读取的MQ消息包括作业触发模块写入的第一MQ消息、作业调度模块写入的第二MQ消息以及任务执行模块写入的第三MQ消息;
[0025]所述第一MQ消息为触发作业流的第一项任务;所述第二MQ消息为触发已记录还尚未执行的新任务;所述第三MQ消息为异步任务回复消息。
[0026]优选地,所述任务执行模块执行的具体交易包括可扩展的C、Java和Shell脚本。
[0027]优选地,如果出现作业流异常中断,通过外部程序在所述任务队列中重新写入MQ消息,重新执行相应任务。
[0028]根据本专利技术的第二方面,提供了一种基于MQ和关系型数据库的作业调度系统,包括:
[0029]作业触发模块,用于发起新任务,将作业计划表中的第一个任务MQ消息写入任务队列;
[0030]作业调度模块,用于从任务队列读取MQ消息,找到该MQ消息任务在作业计划表中的位置后,写执行MQ消息到执行队列,并根据执行状态更新登记新任务,发起下一个任务MQ;
[0031]任务执行模块,用于从执行队列读取MQ消息,执行结束后,同步或异步回复执行结果。
[0032]与现有技术相比,本专利技术具有以下优点:
[0033]1)本专利技术设计的作业流实现方法通过简单配置顺序执行的各项任务,实现了作业
流的自动运行,同时支持同步任务、异步任务、失败任务跳转以及作业异常断点续做;
[0034]2)本专利技术的方法基于MQ和关系型数据库,各模块间通过队列进行输入输出,耦合度小,可移植性强;
[0035]3)本专利技术的作业计划表和任务执行记录表为可配置化,且各模块间配置简单,减少了开发量。
附图说明
[0036]图1为本专利技术的作业流实现流程图一;
[0037]图2为本专利技术的作业流实现流程图二。
具体实施方式
[0038]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。
[0039]实施例
[0040]术语解释:
[0041]作业:一个作业(Job)中包含多个任务(Task)。所有任务执行结束后,该作业即完成;
[0042]同步任务:作业调度发起任务(队列中写入MQ消息)后,还需等待任务的执行结果,则该任务称为同步任务。如果任务执行时间较短,可设计为同步任务;
[0043]异步任务:作业调度发本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于MQ和关系型数据库的数据流实现方法,其特征在于,该方法包括以下步骤:步骤S1、作业触发模块发起新任务,将配置好的作业计划表中的第一个任务对应的MQ消息写入任务队列;步骤S2、作业调度模块中的父进程实时监听所述任务队列,从任务队列读取MQ消息,找到所述MQ消息任务在作业计划表中的位置后,写执行MQ消息到执行队列,并根据执行状态更新登记新任务,发起下一个任务MQ;步骤S3、任务执行模块从执行队列读取MQ消息,执行结束后,同步或异步回复执行结果。2.根据权利要求1所述的一种基于MQ和关系型数据库的数据流实现方法,其特征在于,所述步骤S2包括以下子步骤:步骤S21、作业调度模块中的父进程实时监听所述任务队列,从任务队列读取MQ消息,并fork子进程处理;步骤S22、子进程按照作业调度接口解析读取到的MQ消息,并对任务执行记录表中的任务ID进行空值判断;若任务ID为空,则根据作业编号在作业计划表查询对应作业的第一项任务各项信息后,转步骤S26,否则,转步骤S23;步骤S23、判断任务执行记录表是否存在相应任务,若不存在则视为无效MQ消息,转步骤S27;若任务执行记录表存在相应任务,则转步骤S24;步骤S24、判断回复项内容是否为回复消息,若是,转步骤S25;若否,按照任务执行接口在执行队列中写入MQ消息,此时,若从作业计划表中查询任务为同步执行任务,则从回复队列中读取回复消息,按照作业调度接口解析MQ消息后,转步骤S25,否则转步骤S27;步骤S25、更改该项任务的状态,并依据当前状态从作业计划表中查询下一项任务信息或失败跳转任务信息,转步骤S26;步骤S26、为新任务生成任务ID,将新任务插入任务执行记录表,按照作业调度接口在任务队列中写入MQ消息;步骤S27、退出子进程。3.根据权利要求2所述的一种基于MQ和关系型数据库的数据流实现方法,其特征在于,所述作业计划表的字段包括作业编号、任务编号、任务名称、同异步标志、失败跳转任务编号;其中,“作业编号+任务编号”为主键。4.根据权利要求2...

【专利技术属性】
技术研发人员:牛丽敏
申请(专利权)人:中银金融科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1