一种定时任务动态控制方法、装置、系统及存储介质制造方法及图纸

技术编号:37196126 阅读:12 留言:0更新日期:2023-04-20 22:54
本发明专利技术提供了一种定时任务动态控制方法、装置、系统及存储介质,涉及定时任务管控技术领域。其中所述定时任务动态控制方法包括:在任务管理器中,创建多线程生产模块;基于任务管理器的API接口,接收应用层创建的定时任务指令;通过多线程生产模块,基于所述任务管理器中的任务调度线程池,根据所述定时任务指令管理控制与所述任务指令对应的所述定时任务。本发明专利技术实现了多个定时任务彼此独立,多线程并行执行,能够最大化利用服务器资源;无需引入第三方任务调度平台,避免消耗过多资源,减少实现成本;实现了较高的灵活性,即时修改即时生效,为定时任务的管理和控制提供了更加灵活和方便的解决方案。和方便的解决方案。和方便的解决方案。

【技术实现步骤摘要】
一种定时任务动态控制方法、装置、系统及存储介质


[0001]本专利技术涉及定时任务管控
,更具体地说,涉及一种定时任务动态控制方法、装置、系统及存储介质。

技术介绍

[0002]定时任务,即为需要特定时间、特定时机和条件执行的服务。在现有的web应用中,存在很多需要定时实现的服务,例如可以为:每天12点推送A通知、进行数据同步、进行数据推送、定时处理B业务数据等。
[0003]spring框架,提供了对定时器(job)的支持,通过配置文件或者注解就可以很好的实现定时器的功能,只需要启动应用,就可以对应的自动启动定时器。
[0004]在常规的自动化平台中,都可以实现由用户自定义一些定时任务(job)来自动批量执行预先写好的自动化测试用例(或其他执行用例),以达到依据每次(每日或特定时间)构建任务进行各种测试的目的(例如冒烟测试或者回归测试),但是这类的定时任务存在如下特征:任务执行时间需要由用户自定义;并且,用户需要自行根据需要添加多个定时任务。
[0005]达到上述目的,基于上述使用场景,现有的实现方式和对应的缺陷为:
[0006]1、需要事先定义一个定时任务,然后基于一定的执行间隔去查询事先定义的定时任务,若查询到,则进行执行;但这种实现方式依赖于事先定义的当前定时任务的执行间隔,无法真正模拟多个定时任务执行的效果;
[0007]2、通过公共的任务调度平台来进行添加和执行,实现成本较大,需要独立部署第三方的任务调度平台。
[0008]总之,现有的事先定时任务的方法存在需要事先定义定时任务,并根据执行间隔查询执行,无法模拟多个定时任务执行的测试效果,若通过其他平台添加和执行,则需要采用第三方平台,给定时任务的管理和控制造成了巨大的不便。

技术实现思路

[0009]有鉴于此,针对于上述技术问题,本专利技术提供一种可用于金融科技或其他相关领域的定时任务动态控制方法,包括:
[0010]在任务管理器中,创建多线程生产模块;
[0011]基于任务管理器的API接口,接收应用层创建的定时任务指令;
[0012]通过多线程生产模块,基于所述任务管理器中的任务调度线程池,根据所述定时任务指令管理控制与所述任务指令对应的所述定时任务。
[0013]优选地,所述通过多线程生产模块,基于所述任务管理器中的任务调度线程池,根据所述定时任务指令管理控制与所述任务指令对应的所述定时任务,包括:
[0014]在所述任务管理器中,获取所述定时任务指令定义的执行例;
[0015]通过所述多线程生产模块获取为每个所述执行例赋予对应的任务ID,并将所述执
行例和对应的所述任务ID写入数据库;
[0016]将所述执行例及所述任务ID以定时任务形式注册入所述任务调度线程池中,以便于根据所述任务指令调用所述任务调度线程池中的所述执行例。
[0017]优选地,所述将所述执行例及所述任务ID注册入任务调度线程池中,包括:
[0018]将所述执行例进行任务封装,并将封装后的所述执行例作为定时任务,将所述定时任务注册入所述任务调度线程池。
[0019]优选地,所述在所述任务管理器中,获取所述定时任务指令定义的执行例之前,还包括:
[0020]获取所述数据库中已经注册的执行例;
[0021]将所述执行例逐一封装,注册入所述任务调度线程池中。
[0022]优选地,所述通过多线程生产模块,基于所述任务管理器中的任务调度线程池,根据所述定时任务指令管理控制与所述任务指令对应的所述定时任务,还包括:
[0023]根据所述定时任务指令所指向的任务ID,将所述数据库中与所述任务ID对应的定时任务赋予逻辑删除标签;
[0024]通过所述任务管理器取消所述定时任务。
[0025]优选地,所述通过多线程生产模块,基于所述任务管理器中的任务调度线程池,根据所述定时任务指令管理控制与所述任务指令对应的所述定时任务,还包括:
[0026]根据所述定时任务指令所指向的任务ID,更新所述数据库中的定时任务,并获取所述定时任务;
[0027]通过所述任务管理器取消所述任务调度线程池中的所述定时任务;
[0028]取消后,对所述定时任务中的执行例和与所述执行例对应的任务ID重新封装,得到更新后定时任务;
[0029]将所述更新后定时任务注册入所述任务调度线程池中。
[0030]优选地,所述在任务管理器中,创建多线程生产模块之前,还包括:
[0031]构建基于调度配置类的任务调度线程池,并将所述任务调度线程池以对象形式在spring框架下注册;其中,所述任务调度线程池能基于cron表达式创建所述定时任务。
[0032]此外,为解决上述问题,本专利技术还提供一种定时任务动态控制装置,包括:
[0033]创建模块,用于在任务管理器中,创建多线程生产模块;
[0034]接收模块,用于基于任务管理器的API接口,接收应用层创建的定时任务指令;
[0035]管控模块,用于通过多线程生产模块,基于所述任务管理器中的任务调度线程池,根据所述定时任务指令管理控制与所述任务指令对应的所述定时任务。
[0036]此外,为解决上述问题,本专利技术还提供一种定时任务动态控制系统,包括存储器以及处理器,所述存储器中存储有定时任务动态控制程序,所述处理器运行所述定时任务动态控制程序以使所述定时任务动态控制系统执行如上述所述的定时任务动态控制方法。
[0037]此外,为解决上述问题,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有定时任务动态控制程序,所述定时任务动态控制程序被处理器执行时实现如上述所述的定时任务动态控制方法。
[0038]本专利技术提供了一种定时任务动态控制方法、装置、系统及存储介质,其中,所述方法包括:在任务管理器中,创建多线程生产模块;基于任务管理器的API接口,接收应用层创
建的定时任务指令;通过多线程生产模块,基于所述任务管理器中的任务调度线程池,根据所述定时任务指令管理控制与所述任务指令对应的所述定时任务。本专利技术通过基于所述任务管理器中的任务调度线程池动态定时任务的管理方式,实现自动化平台的用例定时执行,从而避免了使用单一定时任务轮询来模拟多定时任务执行的方式,出现执行时间精度不足的情况;实现多个定时任务彼此独立,多线程并行执行,能够最大化利用服务器资源;无需引入第三方任务调度平台,避免消耗过多资源,减少实现成本;实现了较高的灵活性,即时修改即时生效,为定时任务的管理和控制提供了更加灵活和方便的解决方案。
附图说明
[0039]图1为本专利技术定时任务动态控制方法实施例涉及的硬件运行环境的结构示意图;
[0040]图2为本专利技术定时任务动态控制方法第1实施例的流程示意图;
[0041]图3为本专利技术定时任务动态控制方法第2实施例中步骤S300细化(新建定时任务)的流程示意图;
[0042]图4本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种定时任务动态控制方法,其特征在于,包括:在任务管理器中,创建多线程生产模块;基于任务管理器的API接口,接收应用层创建的定时任务指令;通过多线程生产模块,基于所述任务管理器中的任务调度线程池,根据所述定时任务指令管理控制与所述任务指令对应的所述定时任务。2.如权利要求1所述定时任务动态控制方法,其特征在于,所述通过多线程生产模块,基于所述任务管理器中的任务调度线程池,根据所述定时任务指令管理控制与所述任务指令对应的所述定时任务,包括:在所述任务管理器中,获取所述定时任务指令定义的执行例;通过所述多线程生产模块获取为每个所述执行例赋予对应的任务ID,并将所述执行例和对应的所述任务ID写入数据库;将所述执行例及所述任务ID以定时任务形式注册入所述任务调度线程池中,以便于根据所述任务指令调用所述任务调度线程池中的所述执行例。3.如权利要求2所述定时任务动态控制方法,其特征在于,所述将所述执行例及所述任务ID注册入任务调度线程池中,包括:将所述执行例进行任务封装,并将封装后的所述执行例作为定时任务,将所述定时任务注册入所述任务调度线程池。4.如权利要求2所述定时任务动态控制方法,其特征在于,所述在所述任务管理器中,获取所述定时任务指令定义的执行例之前,还包括:获取所述数据库中已经注册的执行例;将所述执行例逐一封装,注册入所述任务调度线程池中。5.如权利要求2所述定时任务动态控制方法,其特征在于,所述通过多线程生产模块,基于所述任务管理器中的任务调度线程池,根据所述定时任务指令管理控制与所述任务指令对应的所述定时任务,还包括:根据所述定时任务指令所指向的任务ID,将所述数据库中与所述任务ID对应的定时任务赋予逻辑删除标签;通过所述任务管理器取消所述定时任务。6.如权利要求2所述定时...

【专利技术属性】
技术研发人员:周小亮
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

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

1