定时任务引擎加载方法及系统与流程

文档序号:31944602发布日期:2022-10-26 04:00阅读:47来源:国知局
定时任务引擎加载方法及系统与流程

1.本技术涉及数据维护领域,可应用于金融领域和其他领域,尤指一种定时任务引擎加载方法及系统。


背景技术:

2.应用系统中经常需要定时或指定间隔去执行一些固定的计算来分散应用服务器的计算压力,例如一个自动收费功能,从软件设计角度一般会将此功能拆分成更细小的业务处理模块:自动计费、自动扣费、扣费异常结果处理。待收费的项目随着联机交易的增加而增加,如果集中在某一时间执行自动收费可能会在瞬时增加服务器的压力,所以最好指定在每天业务空闲期再执行。并且当应用系统举办一些秒杀、推广活动的时候,需要业务人员调整定时任务的启动时间和间隔时间来躲避这些临时的业务高峰,那么就需要一个易维护热加载的定时任务机制将开发的不同定时任务组织起来。
3.现有技术中,quartz本身是个定时任务框架,但是定时运行的配置信息一般存在xml配置文件中,修改定时信息需要修改配置文件后再重启服务才能生效。这种更新文件的动作一般是由系统运维工程师来做,业务同时无法及时根据需要修改定时信息。


技术实现要素:

4.本技术目的在于提供一种定时任务引擎加载方法及系统,在保证易维护和热加载的同时,可有效组织多个定时任务并提供非系统运维工程师的需求人员灵活定义的设置通道。
5.为达上述目的,本技术所提供的定时任务引擎加载方法,具体包含:获取定时任务参数,将所述定时任务参数加入预设的定时任务数据表;按预设周期读取所述定时任务数据表,根据所述定时任务数据表筛选获得新增的定时任务参数,通过所述定时任务参数将对应的定时任务更新至内存;读取并解析内存中的定时任务,根据所述定时任务的执行时间调用对应的业务执行组件执行所述定时任务。
6.在上述定时任务引擎加载方法中,可选的,按预设周期读取所述定时任务数据表,根据所述定时任务数据表筛选获得新增的定时任务参数包含:按预设周期解析所述定时任务数据表获得所有定时任务参数;根据所述定时任务参数于内存中查询对应的定时任务;根据查询结果获得新增的定时任务参数。
7.在上述定时任务引擎加载方法中,可选的,按预设周期读取所述定时任务数据表,根据所述定时任务数据表筛选获得新增的定时任务参数,通过所述定时任务参数将对应的定时任务更新至内存还包含:解析获得所有定时任务参数中各定时任务对应的第一执行时间;将所述第一执行时间与所述内存中对应的定时任务的第二执行时间进行比较;根据比较结果通过所述第一执行时间更新所述第二执行时间。
8.在上述定时任务引擎加载方法中,可选的,读取并解析内存中的定时任务还包含:将内存中的所有定时任务与所述定时任务数据表中定时任务进行比较,根据比较结果生成
关闭指令。
9.在上述定时任务引擎加载方法中,可选的,读取并解析内存中的定时任务还包含:根据所述关闭指令于内存中删除对应的定时任务。
10.本技术还提供一种定时任务引擎加载系统,所述系统包含定时任务维护模块、框架刷新模块和定时任务框架模块;所述定时任务维护模块用于获取定时任务参数,将所述定时任务参数加入预设的定时任务数据表;所述框架刷新模块用于按预设周期读取所述定时任务数据表,根据所述定时任务数据表筛选获得新增的定时任务参数,通过所述定时任务参数将对应的定时任务更新至内存;所述定时任务框架模块用于读取并解析内存中的定时任务,根据所述定时任务的执行时间调用对应的业务执行组件执行所述定时任务。
11.在上述定时任务引擎加载系统中,可选的,所述框架刷新模块包含刷新单元和更新单元;所述刷新单元用于按预设周期解析所述定时任务数据表获得所有定时任务参数,根据所述定时任务参数于内存中查询对应的定时任务,根据查询结果获得新增的定时任务参数;所述更新单元用于根据所述定时任务参数生成对应的定时任务,将所述定时任务更新至内存。
12.在上述定时任务引擎加载系统中,可选的,所述刷新单元还包含比对组件,所述比对组件用于解析获得所有定时任务参数中各定时任务对应的第一执行时间,将所述第一执行时间与所述内存中对应的定时任务的第二执行时间进行比较,根据比较结果通过所述第一执行时间更新所述第二执行时间。
13.在上述定时任务引擎加载系统中,可选的,所述框架刷新模块还包含筛查单元,所述筛查单元用于将内存中的所有定时任务与所述定时任务数据表中定时任务进行比较,根据比较结果生成关闭指令。
14.在上述定时任务引擎加载系统中,可选的,所述定时任务框架模块还包含关闭单元,所述关闭单元用于根据所述关闭指令于内存中删除对应的定时任务。
15.本技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
16.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
17.本技术还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述方法的步骤。
18.本技术的有益技术效果在于:对于联机定时任务的执行计划的维护和同步到内存做了封装,开发人员只用关心实际的业务处理逻辑和启动时间与频率,具体通过把业务人员维护的定时任务信息储存于数据表中,应用系统自身指定间隔时间去数据库读取定时任务信息并加联机加载覆盖到应用系统的内存,以实现将维护动作放权给需求用户,应用程序定时读取定时信息并且通过操作内存的方法将需求用户维护的定时信息实时加载到内存中并生效。
附图说明
19.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,并不构成对本技术的限定。在附图中:
20.图1为本技术一实施例所提供的定时任务引擎加载方法的流程示意图;
21.图2为本技术一实施例所提供的新增定时任务参数的获取流程示意图;
22.图3为本技术一实施例所提供的时间更新的流程示意图;
23.图4为本技术一实施例所提供的定时任务引擎加载系统的结构示意图;
24.图5为本技术一实施例所提供的框架刷新模块的结构示意图;
25.图6为本技术一实施例所提供的框架刷新模块的结构示意图;
26.图7为本技术一实施例所提供的电子设备的结构示意图。
具体实施方式
27.以下将结合附图及实施例来详细说明本技术的实施方式,借此对本技术如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本技术中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本技术的保护范围之内。
28.另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
29.请参考图1所示,本技术所提供的定时任务引擎加载方法,具体包含:
30.s101获取定时任务参数,将所述定时任务参数加入预设的定时任务数据表;
31.s102按预设周期读取所述定时任务数据表,根据所述定时任务数据表筛选获得新增的定时任务参数,通过所述定时任务参数将对应的定时任务更新至内存;
32.s103读取并解析内存中的定时任务,根据所述定时任务的执行时间调用对应的业务执行组件执行所述定时任务。
33.实际工作中,根据接收到的定时任务需求获得对应的定时任务参数,将定时任务参数更新到定时任务数据表,其后按周期读取此表,将数据库中信息表同步到内存中;最后,根据内存中生效的业务定时任务执行计划去调用指定的业务定时任务的程序;其中,所述定时任务参数可包含定时任务名称、定时任务规则和定时任务触发时间;该定时任务数据表可由工作人员提前定义,其后由需求人员填入想要执行的定时入口程序并指定好执行计划时间信息,该填入信息可采用cron表达式的方式。
34.请参考图2所示,在本技术一实施例中,按预设周期读取所述定时任务数据表,根据所述定时任务数据表筛选获得新增的定时任务参数包含:
35.s201按预设周期解析所述定时任务数据表获得所有定时任务参数;
36.s202根据所述定时任务参数于内存中查询对应的定时任务;
37.s203根据查询结果获得新增的定时任务参数。
38.具体的,在实际工作中可创建框架定时任务dynamictaskservice:每分钟的0秒开始读取数据库中业务人员维护的执行计划时间信息(cron表达式);该过程可通过集成crontab开源框架实现执行计划的解析和执行;当然本领域相关技术人员也可采用其他组件实现上述流程,本技术对此并不做进一步限定。
39.请参考图3所示,在本技术一实施例中,按预设周期读取所述定时任务数据表,根据所述定时任务数据表筛选获得新增的定时任务参数,通过所述定时任务参数将对应的定
时任务更新至内存还包含:
40.s301解析获得所有定时任务参数中各定时任务对应的第一执行时间;
41.s302将所述第一执行时间与所述内存中对应的定时任务的第二执行时间进行比较;
42.s303根据比较结果通过所述第一执行时间更新所述第二执行时间。
43.具体的,在实际工作中上述实施例可通过遍历数据库执行计划时间信息列表,根据jobname、jobgroup联合判断内存中是否存在此定时任务job,不存在就洗新增一个job,存在就更新执行计划时间信息的方式实现;亦即,每次新增执行任务时先判断欲增加的任务jobname、jobgroup是否存在于现有的任务列表中,如果有就更新没有就插入新增;这个任务列表是一个java常驻进程的变量,所以可以常驻在内存中,用于存储当前正在执行的任务有哪些;从而当出现新增时,就将对应的定时任务补入内存中,如时间有变动就对应更新时间等。
44.在本技术一实施例中,读取并解析内存中的定时任务还包含:将内存中的所有定时任务与所述定时任务数据表中定时任务进行比较,根据比较结果生成关闭指令。进一步的,还可根据所述关闭指令于内存中删除对应的定时任务。具体的,在实际工作中,也存在需要取消某些定时任务的情况,为此,可反向查询内存中已经生效的job,如果在定时任务数据表中不存在则现停止该job的触发器,再移除触发器,最终在内存中删除此job;例如:检索出内存中执行任务列表中的所有jobname、jobgroup,逐个记录去定时任务数据表中是否存在,如果存在则代表此任务还未被删除,不存在则代表此任务已经被维护人员删除了,应该在运行内存中终止此任务。
45.请参考图4所示,本技术还提供一种定时任务引擎加载系统,所述系统包含定时任务维护模块、框架刷新模块和定时任务框架模块;所述定时任务维护模块用于获取定时任务参数,将所述定时任务参数加入预设的定时任务数据表;所述框架刷新模块用于按预设周期读取所述定时任务数据表,根据所述定时任务数据表筛选获得新增的定时任务参数,通过所述定时任务参数将对应的定时任务更新至内存;所述定时任务框架模块用于读取并解析内存中的定时任务,根据所述定时任务的执行时间调用对应的业务执行组件执行所述定时任务。
46.以此,通过把业务人员维护的定时任务信息储存于数据表中,应用系统自身指定间隔时间去数据库读取定时任务信息并加联机加载覆盖到应用系统的内存,以实现将维护动作放权给需求用户,应用程序定时读取定时信息并且通过操作内存的方法将需求用户维护的定时信息实时加载到内存中并生效;例如:一个会员服务系统的收费功能,分为计算会费、扣费两个任务。这两个任务何时启动,每隔多久启动一次等等这些执行计划可以让维护人员维护(可通过页面也可直接操作数据库)在数据表中。其后,定时任务框架模块就会根据维护人员维护的执行计划去执行指定的计算会费、收费两个任务,并且维护人员随时可以修改执行计划,修改后无需重启系统,就能在下个任务周期加载最新的执行计划。
47.请参考图5所示,在本技术一实施例中,所述框架刷新模块包含刷新单元和更新单元;所述刷新单元用于按预设周期解析所述定时任务数据表获得所有定时任务参数,根据所述定时任务参数于内存中查询对应的定时任务,根据查询结果获得新增的定时任务参数;所述更新单元用于根据所述定时任务参数生成对应的定时任务,将所述定时任务更新
至内存。进一步的,所述刷新单元还包含比对组件,所述比对组件用于解析获得所有定时任务参数中各定时任务对应的第一执行时间,将所述第一执行时间与所述内存中对应的定时任务的第二执行时间进行比较,根据比较结果通过所述第一执行时间更新所述第二执行时间。再请参考图6所示,在本技术一实施例中,所述框架刷新模块还包含筛查单元,所述筛查单元用于将内存中的所有定时任务与所述定时任务数据表中定时任务进行比较,根据比较结果生成关闭指令。进一步的,所述定时任务框架模块还可包含关闭单元,所述关闭单元用于根据所述关闭指令于内存中删除对应的定时任务。上述实施例中各组件的实现方式已在前述实施例中详细说明,在此就不再一一详述。
48.本技术的有益技术效果在于:对于联机定时任务的执行计划的维护和同步到内存做了封装,开发人员只用关心实际的业务处理逻辑和启动时间与频率,具体通过把业务人员维护的定时任务信息储存于数据表中,应用系统自身指定间隔时间去数据库读取定时任务信息并加联机加载覆盖到应用系统的内存,以实现将维护动作放权给需求用户,应用程序定时读取定时信息并且通过操作内存的方法将需求用户维护的定时信息实时加载到内存中并生效。
49.本技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
50.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
51.本技术还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述方法的步骤。
52.如图7所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图7中所示的所有部件;此外,电子设备600还可以包括图7中没有示出的部件,可以参考现有技术。
53.如图7所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
54.其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
55.输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。
56.该存储器140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
57.存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
58.通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
59.基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
60.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
61.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
62.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
63.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
64.以上所述的具体实施例,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本技术的具体实施例而已,并不用于限定本技术的保护范围,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1