System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理领域,特别涉及一种任务调度方法、装置、设备及存储介质。
技术介绍
1、随着计算机系统的不断发展和扩展,越来越多的应用程序需要在特定的时间或者间隔内自动执行某些任务。这些任务可以是周期性的,比如每隔一段时间执行一次;也可以是固定时间的,比如每天的某个具体时刻执行一次,也可能存在依赖性,需要控制,通常这些任务由一个定时任务调度系统来管理和执行。传统的定时任务调度系统大多都是基于quartz框架,通过对quartz框架的一些封装,使用quartz的任务调度器进行任务调度和执行,并使用quartz提供的触发器和执行策略定义任务。
2、但是依据quartz实现的传统的定时任务调度系统存在着一些问题。系统的调度策略不够灵活,不能够满足不同任务的需求;系统在执行大量任务时,会因为负载过大而导致性能下降或者任务延迟等问题。此外,系统对任务执行情况的监控和管理能力,使得任务的调度和管理变得困难和不可靠,当任务执行出错后需要人工干预。因此,如何在任务量较大以及任务执行需求复杂时更有效地进行任务调度是本领域有待解决的问题。
技术实现思路
1、有鉴于此,本专利技术的目的在于提供一种任务调度方法、装置、设备及存储介质,通过设置任务调度模块和任务执行模块,生成每个任务下次需要执行的task,检测task的状态和执行情况发送到任务执行模块处理,可以支持处理任务相互依赖的情况。其具体方案如下:
2、第一方面,本申请提供了一种任务调度方法,包括:
3、将待执
4、通过预设任务调度模块根据预设任务查询时间定期查询所述预设数据库管理系统中的所述待执行任务,并根据所述待执行任务的配置信息中的计划任务表达式生成所述待执行任务对应的task;
5、通过所述预设任务调度模块的任务管理节点将所述task下发至预设任务执行模块的任务执行节点,并基于所述task确定所述待执行任务的任务执行时间;
6、通过所述任务执行节点根据所述任务执行时间执行所述task,并根据预设数据存储流程存储所述task执行过程中的任务数据。
7、可选的,所述通过所述预设任务调度模块的任务管理节点将所述task下发至预设任务执行模块的任务执行节点之前,还包括:
8、将所述预设任务执行模块通过http接口的方式注册到所述预设任务调度模块,并通过所述任务执行节点定时发送心跳数据到所述任务管理节点以确认所述任务管理节点存活。
9、可选的,所述根据所述待执行任务的配置信息中的计划任务表达式生成所述待执行任务对应的task,包括:
10、根据所述待执行任务的配置信息判断所述待执行任务是否为多节点执行任务;
11、若所述待执行任务为所述多节点执行任务,则根据所述计划任务表达式通过预设拆分字段将所述待执行任务拆分为若干个目标task,以便若干所述任务执行节点接收到所述待执行任务对应的所述目标task后,根据所述目标task配置所述待执行任务对应的目标数据,并根据预设任务管理页面进行所述待执行任务的管理。
12、可选的,所述根据所述计划任务表达式通过预设拆分字段将所述待执行任务拆分为若干个目标task之后,还包括:
13、判断若干个所述目标task之间是否存在依赖关系;
14、若所述目标task之间存在依赖关系,则根据所述依赖关系生成执行依赖链,并根据所述执行依赖链执行所述目标task。
15、可选的,所述通过所述任务执行节点根据所述任务执行时间执行所述task,包括:
16、通过所述预设任务调度模块中的目标线程轮询所述task中是否存在满足执行时间条件的待执行task;所述预设任务调度模块中存在始终存活的所述目标线程;
17、若存在,则在所有所述任务执行节点中筛选出当前工作量最少的目标节点,并将所述待执行task下发到所述目标节点进行执行。
18、可选的,所述通过所述预设任务调度模块的任务管理节点将所述task下发至预设任务执行模块的任务执行节点过程中,还包括:
19、若存在若干所述任务管理节点,则根据预设节点确定规则确定主管理节点和备用管理节点;
20、若所述主管理节点出现故障,则通过所述任务执行节点自动切换并使用所述备用管理节点,并在使用所述备用管理节点的所述任务执行节点的数量超过所有所述任务执行节点的数量的一半之后,将所述备用管理节点自动设置为新的主管理节点,并通知所有所述任务执行节点切换新的任务管理节点。
21、可选的,所述通过所述任务执行节点根据所述任务执行时间执行所述task,并根据预设数据存储流程存储所述task执行过程中的任务数据,包括:
22、在所述任务执行节点接收到所述任务管理节点下发的所述task后,通过java反射确定所述task对应的目标类,并根据所述目标类的属性对所述task进行数据处理;
23、将对所述task进行数据处理后得到的所述任务数据保存至redis中,并在所述task执行完成后,通过预设数据存储线程将所述任务数据从所述redis中读取后存到clickhouse中。
24、第二方面,本申请提供了一种任务调度装置,包括:
25、任务配置模块,用于将待执行任务和所述待执行任务的配置信息通过预设任务配置页面配置到预设数据库管理系统中;
26、任务生成模块,用于通过预设任务调度模块根据预设任务查询时间定期查询所述预设数据库管理系统中的所述待执行任务,并根据所述待执行任务的配置信息中的计划任务表达式生成所述待执行任务对应的task;
27、任务下发模块,用于通过所述预设任务调度模块的任务管理节点将所述task下发至预设任务执行模块的任务执行节点,并基于所述task确定所述待执行任务的任务执行时间;
28、任务执行模块,用于通过所述任务执行节点根据所述任务执行时间执行所述task,并根据预设数据存储流程存储所述task执行过程中的任务数据。
29、第三方面,本申请提供了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述的任务调度方法。
30、第四方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的任务调度方法。
31、本申请首先将待执行任务和所述待执行任务的配置信息通过预设任务配置页面配置到预设数据库管理系统中,通过预设任务调度模块根据预设任务查询时间定期查询所述预设数据库管理系统中的所述待执行任务,并根据所述待执行任务的配置信息中的计划任务表达式生成所述待执行任务对应的task,然后通过所述预设任务调度模块的任务管理节点将所述task下发至预设任务执行模块的任务执行节点,并基于所述task确本文档来自技高网...
【技术保护点】
1.一种任务调度方法,其特征在于,包括:
2.根据权利要求1所述的任务调度方法,其特征在于,所述通过所述预设任务调度模块的任务管理节点将所述task下发至预设任务执行模块的任务执行节点之前,还包括:
3.根据权利要求1所述的任务调度方法,其特征在于,所述根据所述待执行任务的配置信息中的计划任务表达式生成所述待执行任务对应的task,包括:
4.根据权利要求3所述的任务调度方法,其特征在于,所述根据所述计划任务表达式通过预设拆分字段将所述待执行任务拆分为若干个目标task之后,还包括:
5.根据权利要求3所述的任务调度方法,其特征在于,所述通过所述任务执行节点根据所述任务执行时间执行所述task,包括:
6.根据权利要求3所述的任务调度方法,其特征在于,所述通过所述预设任务调度模块的任务管理节点将所述task下发至预设任务执行模块的任务执行节点过程中,还包括:
7.根据权利要求1至6任一项所述的任务调度方法,其特征在于,所述通过所述任务执行节点根据所述任务执行时间执行所述task,并根据预设数据存储流程存储所述
8.一种任务调度装置,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的任务调度方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的任务调度方法。
...【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:
2.根据权利要求1所述的任务调度方法,其特征在于,所述通过所述预设任务调度模块的任务管理节点将所述task下发至预设任务执行模块的任务执行节点之前,还包括:
3.根据权利要求1所述的任务调度方法,其特征在于,所述根据所述待执行任务的配置信息中的计划任务表达式生成所述待执行任务对应的task,包括:
4.根据权利要求3所述的任务调度方法,其特征在于,所述根据所述计划任务表达式通过预设拆分字段将所述待执行任务拆分为若干个目标task之后,还包括:
5.根据权利要求3所述的任务调度方法,其特征在于,所述通过所述任务执行节点根据所述任务执行时间执行所述task,包括:
6.根据权利要求3所述的任务调度方法,其特征在...
【专利技术属性】
技术研发人员:施家政,谢思恩,
申请(专利权)人:杭州安恒信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。