一种流式任务调度方法、引擎和系统与流程
- 国知局
- 2024-07-31 22:50:32
本发明涉及软件任务调度领域,尤其涉及一种流式任务调度方法、引擎和系统。
背景技术:
1、在软件应用领域,有大量需要各类任务执行的场景。随着软件系统的复杂性不断增加,任务队列引擎成为了许多应用程序中不可或缺的组件之一。任务队列引擎负责管理和执行异步任务,这些任务可能涉及到后台处理、定时任务、消息传递等方面。其主要目标是提高系统的可靠性、可伸缩性和性能,同时降低开发人员的复杂性。在当前,许多应用程序都是通过自己的方式实现任务队列功能,这导致了很多重复工作和不一致性。
2、随着分布式系统的兴起以及云计算的普及,需要一种更加通用、可靠、高效的任务队列引擎来满足日益增长的需求。一般来说,应用程序在开发时会自己单独去开发一套定制化的任务队列引擎,这种引擎不具备通用性,也就是a应用开发的任务队列引擎,并不能给b应用使用。在应用程序自己定制开发任务队列引擎的时候,基于技术人员能力、项目开发周期、项目成本等一系列原因,并不能保证能开发一套性能好,可靠行高的任务队列引擎,导致自身应用的性能和可靠性降低。
3、在实现本发明过程中,申请人发现现有技术中至少存在如下问题:现有任务调度引擎无法满足通用、可靠和高效的需求的问题。
技术实现思路
1、本发明实施例提供一种流式任务调度方法、引擎和系统,以解决现有任务队列无法满足通用、可靠和高效的需求的问题。
2、第一方面,本发明实施例提供一种流式任务调度方法,包括:
3、接收任务的任务实例;
4、验证所述任务实例的有效性;
5、在验证出所述任务实例为有效时,判断运行队列是否已满;在判断出所述运行队列不满时,将所述任务实例添加到所述运行队列中,在判断出所述运行队列满时,将所述任务实例添加到等待队列中;
6、针对所述运行队列中的每个任务实例,根据预设的用户自定义业务处理类,生成所述任务实例对应的用户自定义业务处理实例,调用所述用户自定义业务处理实例,将所述任务实例中的用户自定义业务处理逻辑数据,转换为所述任务实例对应的可执行业务处理逻辑代码;
7、针对所述运行队列中的每个任务实例,根据预设的用户自定义命令执行类,生成所述任务实例对应的用户自定义命令执行实例,将所述任务实例对应的可执行业务处理逻辑代码作为参数,调用所述用户自定义命令执行实例,以启动所述任务实例对应的用户自定义任务提交执行逻辑的执行;其中,在所述任务实例对应的用户自定义任务提交执行逻辑中调用执行所述任务实例对应的可执行业务处理逻辑代码;所述用户自定义任务提交执行逻辑预先配置于所述用户自定义命令执行类中;所述用户自定义任务提交执行逻辑用于定义对应任务实例对应的任务的执行流程;
8、针对用户自定义任务提交执行逻辑已执行完成的任务实例,从所述运行队列移除所述任务实例,并从所述等待队列中拉取任务实例,并跳转到所述验证所述任务实例的有效性的步骤处执行;
9、其中,所述任务实例包括:用户自定义业务处理逻辑数据;所述用户自定义业务处理逻辑数据用于描述生成可执行业务处理逻辑代码所需的参数。
10、第二方面,本发明实施例提供一种流式任务调度引擎,包括:
11、任务实例接收单元,用于接收任务的任务实例;
12、任务验证单元,用于验证所述任务实例的有效性;
13、队列拦截单元,用于在验证出所述任务实例为有效时,判断运行队列是否已满;在判断出所述运行队列不满时,将所述任务实例添加到所述运行队列中,在判断出所述运行队列满时,将所述任务实例添加到等待队列中;
14、业务逻辑执行单元,用于针对所述运行队列中的每个任务实例,根据预设的用户自定义业务处理类,生成所述任务实例对应的用户自定义业务处理实例,调用所述用户自定义业务处理实例,将所述任务实例中的用户自定义业务处理逻辑数据,转换为所述任务实例对应的可执行业务处理逻辑代码;
15、任务提交执行单元,用于针对所述运行队列中的每个任务实例,根据预设的用户自定义命令执行类,生成所述任务实例对应的用户自定义命令执行实例,将所述任务实例对应的可执行业务处理逻辑代码作为参数,调用所述用户自定义命令执行实例,以启动所述任务实例对应的用户自定义任务提交执行逻辑的执行;其中,在所述任务实例对应的用户自定义任务提交执行逻辑中调用执行所述任务实例对应的可执行业务处理逻辑代码;所述用户自定义任务提交执行逻辑预先配置于所述用户自定义命令执行类中;所述用户自定义任务提交执行逻辑用于定义对应任务实例对应的任务的执行流程;
16、任务回调单元,用于针对用户自定义任务提交执行逻辑已执行完成的任务实例,从所述运行队列移除所述任务实例,并从所述等待队列中拉取任务实例,并触发任务验证单元执行;
17、其中,所述任务实例包括:用户自定义业务处理逻辑数据;所述用户自定义业务处理逻辑数据用于描述生成可执行业务处理逻辑代码所需的参数。
18、第三方面,本发明实施例提供一种流式任务调度系统,包括由多个如前所述的任意一种流式任务调度引擎组成的引擎集群和引擎监控服务单元;
19、所述引擎监控服务单元,用于实时获取所述引擎集群中的各流式任务调度引擎的运行数据,并根据各流式任务调度引擎的运行数据,在各流式任务调度引擎之间均衡分配任务实例,或者将发生故障的流式任务调度引擎中的任务实例重新均衡分配给所述引擎集群中的正常运行的流式任务调度引擎。
20、上述技术方案具有如下有益效果:通过设置用户自定义业务处理类、用户自定义命令执行类,允许用户根据自身需求自定义用户自定义业务处理类、用户自定义命令执行类的具体行为,从而可以充分复用任务调度过程的其他已实现逻辑,例如任务实例的有效性检验、运行队列和等待队列的更新等,任何有任务并发运行控制的应用系统,都可以通过本发明技术方案实现快速的对接,提高系统的可靠性、可伸缩性和性能,同时降低开发人员的复杂性,能够把精力更多的放在业务的实现上。
技术特征:1.一种流式任务调度方法,其特征在于,包括:
2.如权利要求1所述的流式任务调度方法,其特征在于,所述任务实例还包括:延时检查时间、任务实际重试次数和预设任务失败重试次数;
3.如权利要求1所述的流式任务调度方法,其特征在于,所述接收任务的任务实例,包括:
4.如权利要求1所述的流式任务调度方法,其特征在于,所述任务实例包括:当前可并发运行的最大任务数量;
5.如权利要求1所述的流式任务调度方法,其特征在于,所述针对用户自定义任务提交执行逻辑已执行完成的任务实例,从所述运行队列移除所述任务实例,并从所述等待队列中拉取任务实例,并跳转到所述验证所述任务实例的有效性的步骤处执行,还包括:
6.一种流式任务调度引擎,其特征在于,包括:
7.如权利要求6所述的流式任务调度引擎,其特征在于,所述任务实例还包括:延时检查时间、任务实际重试次数和预设任务失败重试次数;
8.如权利要求6所述的流式任务调度引擎,其特征在于,所述任务实例接收单元,包括:
9.如权利要求6所述的流式任务调度引擎,其特征在于,所述任务实例包括:当前可并发运行的最大任务数量;
10.一种流式任务调度系统,其特征在于,包括由多个如权利要求6~9中任意一项所述的流式任务调度引擎组成的引擎集群和引擎监控服务单元;
技术总结本发明提供一种流式任务调度方法、引擎和系统,属于软件任务调度领域,该方法包括:接收任务实例并验证有效性;如果有效,在运行队列不满时,将任务实例添加到运行队列,在运行队列满时,添加到等待队列中;针对运行队列中的每个任务实例,调用任务实例对应的用户自定义业务处理实例,将任务实例中的用户自定义业务处理逻辑数据,转换为任务实例对应的可执行业务处理逻辑代码;调用任务实例对应的用户自定义命令执行实例,启动任务实例对应的用户自定义任务提交执行逻辑的执行,以执行可执行业务处理逻辑代码;从运行队列移除用户自定义任务提交执行逻辑执行完成的任务实例,从等待队列中拉取任务实例,回到验证任务实例的有效性处执行。技术研发人员:王建林,李峰,崔念龙,李霄雨受保护的技术使用者:北京宇信科技集团股份有限公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/194939.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表