一种分布式统一定时任务调度系统的制作方法

文档序号:36909235发布日期:2024-02-02 21:38阅读:21来源:国知局
一种分布式统一定时任务调度系统的制作方法

本发明涉及一种任务调度技术,具体涉及一种分布式的统一定时任务调度系统。


背景技术:

1、在当下计算机技术高度发展的背景下,触发定时任务的系统或技术手段越来越丰富。尤其随着业务的发展,定时任务越来越多地被应用于业务场景中,触发的条件也多种多样,如按照自然时间以一定频率进行触发,按照交易日历在特定日期触发,按照上游业务系统给出的触发信号触发等等。目前,通常的解决方案是按照业务场景,分别实现不同的触发系统,难以进行统一管控。

2、传统的定时任务调度方案,仅能支持按照自然日时间以一定频率触发的场景,无法支持按照特定交易日历指定日期触发,无法支持按照业务消息信号进行触发的场景;不支持集中管控,无法进行人工干预;任务状态无法实时展现,缺乏有效的监控手段;同时在定时调度高峰期,无法进行扩容,低峰期无法进行缩容,无法高效利用系统性能。


技术实现思路

1、以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。

2、本发明的目的在于解决上述问题,提供了一种分布式统一定时任务调度系统,能够实现多个业务系统中的调度任务的集中管控,业务系统无需处理复杂的调度逻辑和任务依赖关系,提高业务系统的开发效率,实现任务调度全链条的可视化监控,支持异常场景下的任务执行干预,提升定时任务集中管控的效果。

3、本发明的技术方案为:本发明揭示了一种分布式统一定时任务调度系统,系统包括服务端和客户端,服务端用于任务注册、任务调度、任务执行结果收集,客户端用于任务执行代理、执行结果上报,其中:

4、服务端包括:前端界面、配置模块、事件驱动模块、crontab模块、日期表达式驱动模块、quartz引擎、任务触发执行模块、任务执行结果收集模块、数据库,前端界面将任务配置通过配置模块按照不同的任务类型写入到quartz引擎中,quartz引擎产生执行计划后,将调度信息发送给任务触发执行模块,任务触发执行模块将发起对客户端的调度。客户端将任务执行结果发送至任务执行结果收集模块,将调度结果数据存储至数据库;

5、客户端包括:任务执行代理模块、若干任务所属的任务执行接口、任务回报模块,任务执行代理模块将服务端发送的调度信息进行编排,完成对不同任务的并行或串行触发,任务执行代理模块将不同任务的执行结果写入任务回报模块,任务回报模块将调度结果返回给服务端。

6、根据本发明的分布式统一定时任务调度系统的一实施例,前端界面用于任务状态监控、展示、操作以及任务注册。

7、根据本发明的分布式统一定时任务调度系统的一实施例,前端界面进一步配置为:

8、前端界面所提供的任务状态监控的功能,还包括历史调度记录查询,用于追溯历史调度详细情况,同时提供最新调度状态查询功能,用于分别在任务或子任务的不同粒度上分别进行实时状态监控;

9、前端界面所提供的任务操作的功能,包括提供手动执行入口以及任务暂停入口,其中手动执行入口是在任务执行异常情况下进行手工执行定时任务的操作,任务暂停入口是将平台托管的任务手动暂停或重启;

10、前面界面所提供的任务注册功能,支持在前台界面配置事件驱动类型定时任务、crontab类型定时任务、日期表达式类型定时任务,其中事件驱动类型定时任务是由上游业务系统发送的kakfa消息而触发的任务,crontab类型定时任务是按照crontab周期性触发的定时任务,日期表达式类型定时任务是按照基于交易日历的在特定日期下指定时间频率触发的定时任务。

11、根据本发明的分布式统一定时任务调度系统的一实施例,配置模块用于由前台界面触发任务配置,按照前端界面中配置的不同任务类型分别存储至数据库中的不同任务配置表中。

12、根据本发明的分布式统一定时任务调度系统的一实施例,任务配置进一步包括:

13、按照任务的执行频率划分为高频任务、普通任务,其中高频任务在任务执行过程中不记录执行流水,普通任务在任务执行的每个环节产生的任务流水都会持久化到数据库中;

14、按照任务是否需要预校验分为有预校验的任务和无预校验的任务,其中有预校验的任务在当天最多触发一次客户端的调度,其余轮询调度将会被服务端进行拦截。

15、根据本发明的分布式统一定时任务调度系统的一实施例,事件驱动模块用于接收kafka消息以实现任务触发,进一步配置为:调用quartz引擎,写入quartz的执行计划,交由quartz统一触发任务执行。

16、根据本发明的分布式统一定时任务调度系统的一实施例,crontab模块用于按照crontab周期性触发任务,进一步配置为:服务端利用quartz引擎中注册的执行计划,按照配置模块中配置的任务执行频率,由服务端进行调度。

17、根据本发明的分布式统一定时任务调度系统的一实施例,日期表达式驱动模块用于基于交易日历按照特定日期触发任务。

18、根据本发明的分布式统一定时任务调度系统的一实施例,quartz引擎用于任务执行的统一管理,进一步配置为:接收事件驱动模块、crontab模块、日期表达式驱动模块的执行指令,将执行计划写入quartz元数据表中,实现任务执行计划的持久化和分布式调度。

19、根据本发明的分布式统一定时任务调度系统的一实施例,任务触发执行模块用于客户端调度的统一管控,进一步配置为:接收到quartz引擎所下达的触发指令后,按照任务配置属性,统一进行拦截管控,流量控制,按照不同的任务配置进行定制化的客户端任务执行指令下达。

20、根据本发明的分布式统一定时任务调度系统的一实施例,任务执行结果收集模块用于收集、汇总客户端上报的执行结果,进一步配置为:接收到客户端执行结果后,按照任务配置将属于同一任务下的子任务的任务状态进行汇集,计算出任务的任务状态,包括错过、空跑、运行中、失败、超时、成功共6种状态,其中失败、超时、成功是由子任务的执行情况汇聚而成,所有的任务状态均通过执行流水记录表持久化到数据库中,以便实时展示任务执行的若干节点中的状态,实时监控任务执行健康度。

21、根据本发明的分布式统一定时任务调度系统的一实施例,任务执行代理模块用于接收服务端发送的任务调度指令、调度线程、状态回写,进一步配置为:执行代理通过可插拔式sdk中提供的代理类,异步统一代理服务端发送的若干任务调度指令,对服务端传递过来的任务配置属性进行依赖关系分组处理,将归属于同一个任务中的子任务编排为根据依赖关系串行处理,将不同任务中的子任务进行并行处理,并通过线程池统一管理线程调度及切换,由执行代理模块执行目标任务。

22、根据本发明的分布式统一定时任务调度系统的一实施例,任务回报模块用于实现任务回报服务端,进一步配置为:将任务执行结果通过任务回报模块统一回报服务端,避免任务执行结果丢失、错乱。

23、本发明对比现有技术有如下的有益效果:在本发明的系统中,将事件驱动类型定时任务、crontab类型定时任务、日期表达式驱动定时任务集成于统一的分布式定时任务调度平台中,按照不同类型任务触发方式统一交由平台进行执行控制、调度管控,可支持丰富的定时调度场景。通过任务触发模块完成quartz引擎的封装,可按照不同的任务配置进行定制化的客户端任务执行指令下达,通过统一的流量控制应对高并发场景的任务调度的场景。任务状态丰富,集成了错过、空跑、运行中、失败、超时、成功的状态,可实时展示任务执行的若干节点中的状态,实时监控任务执行健康度,极大提高了任务执行的可观测性。执行代理通过可插拔式sdk中提供的代理类,对服务端传递过来的调度指令进行依赖关系编排,实现了任务间执行顺序的管控,极大解决了任务间依赖难以编排的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1