一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

执行定时任务的方法及装置与流程

2022-12-20 22:29:34 来源:中国专利 TAG:


1.本发明涉及网络安全技术领域,尤其涉及执行定时任务的方法及装置。


背景技术:

2.应用系统中经常需要定时或指定间隔去执行一些固定的计算来分散应用服务器的计算压力,那么就需要通过定时信息将开发的不同定时任务组织起来。目前定时任务所使用的是quartz定时任务框架。
3.但是其不足在于:在修改定时信息后需要再重启服务才能生效。


技术实现要素:

4.本发明实施例提供一种执行定时任务的方法,用以解决修改定时信息后需要再重启服务才能生效的问题,该方法包括:
5.应用系统按预定时间读取数据库中的定时任务信息,其中,所述定时任务信息是根据业务要求进行维护的、需要应用系统定时执行的定时任务的信息,所述定时任务信息存储于数据库中;
6.应用系统将读取的定时任务信息加载至应用系统的内存中;
7.应用系统根据内存中的定时任务信息执行定时任务。
8.本发明实施例还提供一种执行定时任务的装置,用以解决修改定时信息后需要再重启服务才能生效的问题,该装置包括:
9.读取模块,用于通过应用系统按预定时间读取数据库中的定时任务信息,其中,所述定时任务信息是根据业务要求进行维护的、需要应用系统定时执行的定时任务的信息,所述定时任务信息存储于数据库中;
10.加载模块,用于通过应用系统将读取的定时任务信息加载至应用系统的内存中;
11.触发模块,用于触发应用系统根据内存中的定时任务信息执行定时任务。
12.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述执行定时任务的方法。
13.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述执行定时任务的方法。
14.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述执行定时任务的方法。
15.本发明实施例中,与现有技术中只能再重启服务才能生效的技术方案相比,由于根据业务要求进行维护的定时任务信息是存储于数据库中的,而应用系统按照设定的时间读取后直接写入内存中,供应用系统获取后执行,由于写入的是内存,而不再需要将其写入xml配置文件,因此不再需要重启服务才能生效,可以实现定时任务信息的热加载,从而不会因服务器重启而影响定时任务的执行;由于应用系统按设定的时间读取运维部门维护的
定时任务信息,因此业务部门无需关注定时任务的变更,使得定时任务易于维护。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
17.图1为本发明实施例中执行定时任务的方法实施流程示意图;
18.图2为本发明实施例中执行定时任务的架构示意图;
19.图3为本发明实施例中执行定时任务的实施示意图;
20.图4为本发明实施例中执行定时任务的装置结构示意图;
21.图5为本发明实施例中计算机设备示意图。
具体实施方式
22.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
23.发明人在发明过程中注意到:
24.应用系统中经常需要定时或指定间隔去执行一些固定的计算来分散应用服务器的计算压力,例如一个自动收费功能,从软件设计角度一般会将此功能拆分成更细小的业务处理模块:自动计费、自动扣费、扣费异常结果处理。
25.待收费的项目随着联机交易的增加而增加,如果集中在某一时间执行自动收费可能会在瞬时增加服务器的压力,所以最好指定在每天业务空闲期再执行。
26.并且当应用系统举办一些秒杀、推广活动的时候,需要业务人员调整定时任务的启动时间和间隔时间来躲避这些临时的业务高峰,这时就需要一个易维护热加载的定时任务机制将我们开发的不同定时任务组织起来。
27.但是目前采用的quartz本身是个定时任务框架,其定时运行的配置信息一般存在xml(可扩展标记语言,extensible markup language)配置文件中,修改定时信息后,需要修改配置文件,再重启服务才能生效。
28.然而,这种更新文件的动作一般是由系统运维部门来实施,业务部门并不能及时根据需要修改定时信息。
29.基于此,本发明实施例提供的技术方案中,将定时任务信息的维护动作交由业务部门实施,根据业务要求进行维护,应用程序则在定时读取定时信息后,通过操作内存的方式,将根据业务要求维护的定时信息实时加载到内存中并生效。
30.下面结合附图对实施进行说明。
31.图1为执行定时任务的方法实施流程示意图,如图1所示,可以包括:
32.步骤101、应用系统按预定时间读取数据库中的定时任务信息,其中,所述定时任务信息是根据业务要求进行维护的、需要应用系统定时执行的定时任务的信息,所述定时任务信息存储于数据库中;
33.步骤102、应用系统将读取的定时任务信息加载至应用系统的内存中;
34.步骤103、应用系统根据内存中的定时任务信息执行定时任务。
35.具体的,将运维部门根据业务要求维护的定时任务信息储存于数据库中,应用系统自身指定间隔时间去数据库读取定时任务信息,并联机加载覆盖到应用系统的内存中。
36.实施中,所述定时任务是在quartz定时任务框架下执行的定时任务。
37.具体的,实施的基础是quartz定时任务框架。
38.quartz是opensymphony开源组织在job scheduling领域又一个开源项目,完全由java开发,可以用来执行定时任务。quartz增加了很多功能,例如:
39.持久性作业:就是保持调度定时的状态;
40.作业管理:对调度作业进行有效的管理;
41.每周末凌晨备份数据;
42.触发条件5分钟后发送邮件通知;
43.30分钟未支付取消订单;
44.每1小时去拉取数据。
45.quartz可以由以下三部分组成:
46.调度器:scheduler;
47.任务(task或job):jobdetail;
48.触发器:trigger。
49.下面结合quartz进行实施说明。
50.图2为执行定时任务的架构示意图,如图2所示,至少一个可以实现执行定时任务的功能架构可以包括:
51.维护模块:用于维护业务定时任务信息。
52.框架刷新模块:负责将数据库中的业务定时任务信息更新到内存中。
53.实际业务模块:由开发人员编写的包含实际业务处理的代码,且实现了job接口。也即,实施中,所述定时任务是通过调用job接口执行的。
54.具体的,quartz完成定时任务时,首先需要定义实现一个定时功能的接口,称之为task(或job),如定时发送邮件的task(job),重启机器的task(job),优惠券到期发送短信提醒的task(job)等。
55.实施时,业务部门人员可以通过维护模块将定时任务信息数据更新到定时任务信息表;框架刷新模块读取此表,将数据库中信息表同步到内存中;实际业务模块根据内存中生效的业务定时任务执行计划,去调用指定的业务定时任务的程序。
56.下面通过实例进行说明。
57.实施中,所述定时任务是通过cron表达式指定定时任务的执行时间信息。
58.cron表达式可以如下:
59.1、cron表达式定义:
60.cron表达式是一个字符串,以5或者6个空格隔开(示例中是被5个空格隔开),字符串被切割为6个或者7个域,每个域都代表不同的含义。
61.2、cron表达式规范:
62.秒分小时天数月星期年
63.{seconds}{minutes}{hours}{dayofmonth}{month}{dayofweek}{year}。
64.cron表达式每个域都可以用数字表示,还可以出现规定的特殊字符,例如:
65.*:表示匹配该域的任意值,比如minutes域使用*,就表示每分钟都会触发;
[0066]-:表示范围,比如minutes域使用10-20,就表示从10分钟到20分钟每分钟都会触发一次;
[0067]
,:表示列出枚举值,比如minutes域使用1,3,就表示1分钟和3分钟都会触发一次。
[0068]
实施中,应用系统按预定时间读取数据库中的定时任务信息后,进一步包括:
[0069]
确定内存中是否存在定时任务信息中的定时任务,在不存在时,新增定时任务,存在时更新定时任务执行时间。
[0070]
具体的,可以通过创建框架定时任务:每分钟的0秒开始读取数据库中业务人员维护的执行计划时间信息,遍历数据库执行计划时间信息列表,根据jobname(任务名)、jobgroup(任务组)联合判断内存中是否存在此job,不存在就新增一个job,存在就更新执行计划时间信息。
[0071]
图3为执行定时任务的实施示意图,如图3所示,可以包括:
[0072]
步骤301、创建定时任务数据表,填入开发人员想要执行的定时入口程序并指定好执行计划时间信息(通过cron表达式)。
[0073]
步骤302、创建框架定时任务dynamictaskservice(动态任务服务):每分钟的0秒开始读取数据库中业务人员维护的执行计划时间信息(通过cron表达式)。
[0074]
步骤303、遍历数据库执行计划时间信息列表,根据jobname、jobgroup联合判断内存中是否存在此job,不存在就新增一个job,存在就更新执行计划时间信息。
[0075]
步骤304、反向查询内存中已经生效的job,如果在数据库中不存在则先停止该job的触发器,再移除触发器,最终在内存中删除此job。
[0076]
本发明实施例中还提供了一种执行定时任务的装置,如下面的实施例所述。由于该装置解决问题的原理与执行定时任务的方法相似,因此该装置的实施可以参见执行定时任务的方法的实施,重复之处不再赘述。
[0077]
图4为执行定时任务的装置结构示意图,如图4所示,可以包括:
[0078]
读取模块401,用于通过应用系统按预定时间读取数据库中的定时任务信息,其中,所述定时任务信息是根据业务要求进行维护的、需要应用系统定时执行的定时任务的信息,所述定时任务信息存储于数据库中;
[0079]
加载模块402,用于通过应用系统将读取的定时任务信息加载至应用系统的内存中;
[0080]
触发模块403,用于触发应用系统根据内存中的定时任务信息执行定时任务。
[0081]
实施中,触发模块进一步用于触发在quartz定时任务框架下执行的定时任务。
[0082]
实施中,触发模块进一步用于通过调用job接口执行所述定时任务。
[0083]
实施中,触发模块进一步用于触发通过cron表达式指定定时任务的执行时间信息的所述定时任务。
[0084]
实施中,读取模块进一步用于通过应用系统按预定时间读取数据库中的定时任务信息后,确定内存中是否存在定时任务信息中的定时任务,在不存在时,新增定时任务,存在时更新定时任务执行时间。
[0085]
在实施本发明实施例提供的技术方案时,可以按如下方式实施。
[0086]
图5为计算机设备示意图,如图5所示,计算机设备中包括:
[0087]
处理器500,用于读取存储器520中的程序,执行下列过程:
[0088]
通过应用系统按预定时间读取数据库中的定时任务信息,其中,所述定时任务信息是根据业务要求进行维护的、需要应用系统定时执行的定时任务的信息,所述定时任务信息存储于数据库中;
[0089]
通过应用系统将读取的定时任务信息加载至应用系统的内存中;
[0090]
触发应用系统根据内存中的定时任务信息执行定时任务;
[0091]
收发机510,用于在处理器500的控制下接收和发送数据。
[0092]
实施中,所述定时任务是在quartz定时任务框架下执行的定时任务。
[0093]
实施中,所述定时任务是通过调用job接口执行的。
[0094]
实施中,所述定时任务是通过cron表达式指定定时任务的执行时间信息。
[0095]
实施中,应用系统按预定时间读取数据库中的定时任务信息后,进一步包括:
[0096]
确定内存中是否存在定时任务信息中的定时任务,在不存在时,新增定时任务,存在时更新定时任务执行时间。
[0097]
其中,在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器500代表的一个或多个处理器和存储器520代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机510可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器500负责管理总线架构和通常的处理,存储器520可以存储处理器500在执行操作时所使用的数据。
[0098]
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述执行定时任务的方法。
[0099]
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述执行定时任务的方法。
[0100]
本发明实施例提供的技术方案中,对于联机定时任务的执行计划的维护和同步到内存做了封装,开发人员只用关心实际的业务处理逻辑和启动时间与频率,使联机定时任务具有易维护、热加载的特性。
[0101]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0102]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0103]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0104]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0105]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献