System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Java的定时任务管理方法技术_技高网

一种基于Java的定时任务管理方法技术

技术编号:41135402 阅读:5 留言:0更新日期:2024-04-30 18:06
本发明专利技术公开了一种基于Java的定时任务管理方法,包括以下步骤:将现有的定时任务抽离出一个独立的服务,新建三个表,分别为定时任务管理表、执行成功日志表、执行失败日志表;定时任务管理表新增一个定时任务,该任务来读取失败日志表,避免由于部分定时任务失败导致的数据缺失,也可以实现自动化;超出重试次数时,向配置的管理员发送失败报警短信;新增一个后台管理页面,用来管理所有的定时任务。本发明专利技术解决定时任务可能会引起的用户体验感的问题,实现定时任务失败自动重试并预警,提供管理页面供管理员使用,配置管理更加人性化,减少开发人员工作量。

【技术实现步骤摘要】

本专利技术涉及软件开发研究领域,具体涉及一种基于java的定时任务管理方法。


技术介绍

1、目前在软件开发中,现有技术是业务代码和定时任务放到同一个项目,现在微服务逐渐普及,甚至定时任务会分布在多个服务中,不便于管理及维护,不能及时得知定时任务执行失败。

2、对于用户来说,每个服务我们都会给其分配一定的运行内存,而不是所有的内存,在定时任务数量过多或者执行频率较高的情况下,会导致给用户使用的资源变少,用户体验感变差。

3、对管理员来说,并不清楚是否执行失败,只能依靠运维人员翻看日志或者其他手段,如果需要修改,也必须要开发人员的协助。

4、对开发人员,代码分散不易维护,一些配置问题需要协助管理员或者运维人员。


技术实现思路

1、为了克服现有技术的不足,本专利技术解决定时任务可能会引起的用户体验感的问题,实现定时任务失败自动重试并预警,提供管理页面供管理员使用,配置管理更加人性化,减少开发人员工作量。技术方案如下:

2、一种基于java的定时任务管理方法,包括以下步骤:

3、步骤1,将现有的定时任务抽离出一个独立的服务。

4、步骤2,新建三个表,分别为定时任务管理表、执行成功日志表、执行失败日志表,其中定时任务管理表包括名称,启用状态,所在服务,是否预警,参数示例,执行规则表达式;执行失败日志表包括存储执行失败的定时任务,当次执行参数。

5、步骤3,所述定时任务管理表新增一个定时任务,并新增定时任务代码,该任务来读取失败日志表,执行除自身以外的失败的定时任务,避免由于部分定时任务失败导致的数据缺失,实现自动化。

6、步骤4,定义一个异常,定时任务报错时抛出该异常并重新执行失败的定时任务,超出重试次数时,向配置的管理员发送失败报警短信。

7、步骤5,新增一个定时任务,定时任务管理表增加一个字段,原表有一个是否启用的字段,再新增一个配置是否启用,当定时任务失败次数超过一定次数时,将原表是否启用全部关闭,减少系统资源占用。

8、管理员接收到预警后安排人员排除问题后,手动执行该定时任务,将定时任务恢复,或到执行时间该定时任务自动执行,恢复其它定时任务尝试执行。

9、步骤6,新增一个后台管理页面,用来管理所有的定时任务。

10、优选的,步骤1引入rpc框架,使用rpc远程调用,可以减少冗余代码。

11、优选的,步骤5重试次数可以存在配置表中,每个定时任务按需配置,当失败次数超过配置次数时,发送预警短信并关闭其它定时任务启用状态。

12、优选的,步骤5在计算失败次数时,使用redis。

13、与现有技术相比,本专利技术的有益效果为:解决部分情况下用户体验感变差的情况,对管理人员和运维人员来说,可以更好的管理及配置定时任务的执行,对开发人员来说,可以减少一定程度的工作量。

14、实施方式

15、为了阐明本专利技术的技术方案和工作原理,下面将对本公开实施方式做进一步的详细描述。上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

16、本申请的说明书和权利要求书中的术语“步骤1”、“步骤2”、“步骤3”等类似描述是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里描述的那些以外的顺序实施。

17、本公开实施例提供了一种基于java的定时任务管理方法,包括以下步骤:

18、步骤1,将现有的定时任务抽离出一个独立的服务。

19、可以引入rpc相关框架,在抽离时部分代码可能需要依赖原服务的部分方法,使用rpc远程调用,可以减少冗余代码,但是会增加服务之间的耦合度,按需选择。

20、步骤2,新建三个表,分别为定时任务管理表、执行成功日志表、执行失败日志表,其中定时任务管理表包括名称,启用状态,所在服务,是否预警,参数示例,执行规则表达式等;执行失败日志表包括存储执行失败的定时任务,当次执行参数等。

21、步骤3,所述定时任务管理表新增一个定时任务,并由开发人员新增定时任务代码,该任务来读取失败日志表,执行失败的定时任务(排除自己,避免死循环),这样可以避免由于部分定时任务失败导致的数据缺失,也可以实现自动化。

22、步骤4,开发人员定义一个异常,定时任务报错时可以抛出该异常并重新执行失败的定时任务,超出重试次数时,向配置的管理员发送失败报警短信。

23、步骤5,新增一个定时任务,定时任务管理表增加一个字段,原表有一个是否启用的字段,再新增一个配置是否启用(管理员或者运维人员决定),当定时任务失败次数超过一定次数时,可能是环境问题,此时就不需要再试,将原表是否启用全部关闭,来减少系统资源占用。管理员接收到预警后安排开发人员排除问题后,手动执行该定时任务,将定时任务恢复,或到执行时间该定时任务自动执行,恢复其它定时任务尝试执行。

24、重试次数可以存在配置表中,每个定时任务按需配置,当失败次数超过配置次数时,发送预警短信并关闭其它定时任务启用状态(可配置)。

25、在计算失败次数时,可以使用redis,对于微服务以及分布式来说,该方式更加友好。

26、步骤6,新增一个后台管理页面,用来管理所有的定时任务。

27、以上对本专利技术进行了示例性描述,显然,本专利技术具体实现并不受上述方式的限制,凡是采用了本专利技术的方法构思和技术方案进行的各种非实质性的改进;或者未经改进、等同替换,将本专利技术的上述构思和技术方案直接应用于其他场合的,均在本专利技术的保护范围之内。

本文档来自技高网...

【技术保护点】

1.一种基于Java的定时任务管理方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于Java的定时任务管理方法,其特征在于,步骤1引入RPC框架,使用RPC远程调用,可以减少冗余代码。

3.根据权利要求1所述的一种基于Java的定时任务管理方法,其特征在于,步骤5重试次数可以存在配置表中,每个定时任务按需配置,当失败次数超过配置次数时,发送预警短信并关闭其它定时任务启用状态。

4.根据权利要求3所述的一种基于Java的定时任务管理方法,其特征在于,步骤5在计算失败次数时,使用Redis。

【技术特征摘要】

1.一种基于java的定时任务管理方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于java的定时任务管理方法,其特征在于,步骤1引入rpc框架,使用rpc远程调用,可以减少冗余代码。

3.根据权利要求1所述的一种基于java的定时...

【专利技术属性】
技术研发人员:孙良良陆富迭
申请(专利权)人:南京行者易智能交通科技有限公司
类型:发明
国别省市:

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

1