本发明涉及it与软件开发中的任务调度处理执行领域,特别涉及一种任务调度自适应执行框架系统。
背景技术:
1、在现代计算系统中,任务调度处理执行是一项重要的功能。任务调度框架能够按照任务流的组成以及预定的计划或触发条件,自动地调度和执行任务。然而,传统的任务调度框架存在一些问题,如无法灵活适应任务的动态变化、对任务的执行顺序和依赖关系支持不完善等。
2、通过状态机设计模式可以有效地管理和执行任务的状态和流程,而quartz是一个常用的开源任务调度框架,具有灵活性和可扩展性。然而,传统的quartz框架在处理任务调度过程中对于故障任务的优先调度和动态任务流的管理存在一些局限性。
3、本发明提出一种任务调度自适应执行框架系统。
技术实现思路
1、鉴于以上现有技术的不足,发明的目的在于通过本发明提供的基于状态机和quartz的任务调度处理执行框架系统,可以高效地管理和执行任务调度,实现故障任务的优先调度和动态任务流的灵活管理。该框架具有便捷轻量、扩展灵活、高效可插拔的特点,适用于多种任务调度处理执行场景。
2、本发明的第一方面,提出了一种任务调度自适应执行框架系统,包括:
3、状态机模型模块:用于将任务调度处理执行过程建模为一个状态机,其中每个状态表示任务的不同执行阶段,状态之间的转换表示任务的执行流程和依赖关系;
4、任务步骤定义模块:通过使用step定义任务的不同步骤;
5、任务流程定义模块:通过使用flow定义任务的流程,即任务步骤的执行顺序和依赖关系;
6、任务队列管理模块:通过使用普通任务流队列和故障任务流队列来保存两类task任务流;
7、quartz调度算法模块:通过quartz的调度算法定时查询两个队列中的任务存在情况,并优先读取故障任务流队列;
8、任务流执行管理模块:用于进行任务流队列管理。
9、进一步的,所述状态机模块启动时会读取数据库中持久化的任务流相关数据并入缓存队列,创建或执行任务流时也会同步处理数据库和缓存队列中的任务流上下文信息。
10、进一步的,每个任务流是由多个任务步骤构成,每个任务步骤的执行具有幂等性并且是无状态的,其任务流对应的上下文信息及其具体任务步骤上下文信息均持久化保存在数据库中,用任务流id和任务步骤id进行映射关联。
11、进一步的,任务步骤中进行子任务的级联创建,多个任务流中的相同步骤共用一份接口代码多次执行,通过各自关联数据库中的上下文信息来完成具体任务步骤的封装。
12、进一步的,所述任务步骤定义模块中步骤包括任务的触发条件、执行时间、执行代码。
13、进一步的,所述任务队列管理模块中普通任务流队列用于保存正常流程的任务,故障任务流队列用于保存出现故障的任务。
14、进一步的,所述quartz调度算法模块中若故障任务流队列不为空,则取出队首任务流进行任务流功能代码的触发执行;若故障任务流队列为空,则读取普通任务流队列的队首元素信息进行普通任务流功能代码的触发执行;若两队列均为空,则此次调度跳过执行以待下次调度。
15、进一步的,若任务步骤执行失败,则会更新任务流状态并标记失败信息。同时,通过配置quartz的任务流巡检调度策略,可以对任务流执行过程中超时、失败等场景进行自适应重试。
16、进一步的,所述任务流管理模块中任务流的当前步骤执行完后会检测当前执行的任务步骤是不是最后一步;若是,则结束当前任务流的执行并将其从队列中移除。
17、进一步的所述任务流管理模块中若不是最后一步,则将任务的当前执行步骤序号加1,并将任务流再次放入相应队列的队头,从而再次被调度进入执行模型实现任务的继续执行。
18、本发明有益效果如下:
19、首先增强的安全性和抗干扰能力:
20、1.任务流自适应管理:框架支持动态任务流的灵活管理,可以根据任务的执行情况和自定义状态转换规则动态地修改任务流程和步骤,具备对任务调度处理的自适应性。
21、2.灵活可扩展:通过状态机的设计模式,使任务流执行步骤松耦合且粒度细化,过程清晰可控,借助quartz的灵活性使框架整体能够灵活管理和执行任务调度,适应任务的复杂依赖关系。
22、3.故障任务优先调度:通过优先读取故障任务流队列,框架能够实现对故障任务的优先调度,确保故障任务得到及时处理和修复。
23、4.易于集成和使用:用户只需引入jar包依赖,通过实现框架提供的接口或配置项进行任务步骤的定义、任务流构成及执行顺序的约定、不同任务状态之间的转换规则及自适应处理措施等功能。
1.一种任务调度自适应执行框架系统,其特征在于,包括:
2.根据权利要求1所述的一种任务调度自适应执行框架系统,其特征在于,所述状态机模块启动时会读取数据库中持久化的任务流相关数据并入缓存队列,创建或执行任务流时也会同步处理数据库和缓存队列中的任务流上下文信息。
3.根据权利要求2所述的一种任务调度自适应执行框架系统,其特征在于,每个任务流是由多个任务步骤构成,每个任务步骤的执行具有幂等性并且是无状态的,其任务流对应的上下文信息及其具体任务步骤上下文信息均持久化保存在数据库中,用任务流id和任务步骤id进行映射关联。
4.根据权利要求3所述的一种任务调度自适应执行框架系统,其特征在于,任务步骤中进行子任务的级联创建,多个任务流中的相同步骤共用一份接口代码多次执行,通过各自关联数据库中的上下文信息来完成具体任务步骤的封装。
5.根据权利要求4所述的一种任务调度自适应执行框架系统,其特征在于,所述任务步骤定义模块中步骤包括任务的触发条件、执行时间、执行代码。
6.根据权利要求5所述的一种任务调度自适应执行框架系统,其特征在于,所述任务队列管理模块中普通任务流队列用于保存正常流程的任务,故障任务流队列用于保存出现故障的任务。
7.根据权利要求6所述的一种任务调度自适应执行框架系统,其特征在于,所述quartz调度算法模块中若故障任务流队列不为空,则取出队首任务流进行任务流功能代码的触发执行;若故障任务流队列为空,则读取普通任务流队列的队首元素信息进行普通任务流功能代码的触发执行;若两队列均为空,则此次调度跳过执行以待下次调度。
8.根据权利要求7所述的一种任务调度自适应执行框架系统,其特征在于,若任务步骤执行失败,则会更新任务流状态并标记失败信息。同时,通过配置quartz的任务流巡检调度策略,可以对任务流执行过程中超时、失败等场景进行自适应重试。
9.根据权利要求8所述的一种任务调度自适应执行框架系统,其特征在于,所述任务流管理模块中任务流的当前步骤执行完后会检测当前执行的任务步骤是不是最后一步;若是,则结束当前任务流的执行并将其从队列中移除。
10.根据权利要求9所述的一种任务调度自适应执行框架系统,其特征在于,所述任务流管理模块中若不是最后一步,则将任务的当前执行步骤序号加1,并将任务流再次放入相应队列的队头,从而再次被调度进入执行模型实现任务的继续执行。