一种处理定时任务的方法、装置与电子设备制造方法及图纸

技术编号:24799050 阅读:15 留言:0更新日期:2020-07-07 20:58
本发明专利技术公开了一种处理定时任务的方法、装置与电子设备。所述处理定时任务的方法包括:加载定时任务数据;根据所述定时任务数据创建定时任务和定时器;当所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务;执行所述待执行任务。所述处理定时任务的装置包括:任务加载模块,用于加载定时任务数据;定时模块,用于根据所述定时任务数据创建定时任务和定时器;筛选模块,用于在所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务;执行模块,用于执行所述待执行任务。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述处理定时任务的方法。

【技术实现步骤摘要】
一种处理定时任务的方法、装置与电子设备
本专利技术涉及计算机领域,特别是指一种处理定时任务的方法、装置与电子设备。
技术介绍
在使用JAVA进行应用开发的过程中,经常需要执行一些周期性的操作,或者在某特定时间点执行某一操作。对于这样的操作最方便、简单的实现方式就是使用java.util.Timer工具类。java.util这个包中可以找到Timer和TimerTask这两个类。Timer类直接从Object类继承,能够用来指定某个时间来执行一项任务,或者每隔一定时间间隔反复执行同一个任务。在创建一个Timer类后,就会生成一个线程来控制任务的执行。TimerTask类就是用来实现某项任务的类。现有的解决上述周期性或特定时间点操作的定时任务主要采用Quartz任务调度框架。使用此框架可根据设定的具体时间进行触发,并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),可以满足各种时间的设定。但是Quartz的时间触发条件一般是已知的,需要预先设定好时间触发条件,且设定好的时间触发条件固定,Quartz不支持由用户自由设定的不固定的时间触发条件。针对由用户自由设定的不固定的时间触发条件任务时,需要为任务创建一个相应的Timer类,但是当这类具有由用户自由设定的不固定的时间触发条件的定时任务数量很多时,就得创建大量的Timer类来执行任务,这就必然生成大量的线程,会造成计算机资源的极大浪费,也常常会导致系统卡顿甚至服务异常等问题。
技术实现思路
有鉴于此,本专利技术的目的在于提出一种能够处理大量用户自由设定时间触发条件的定时任务,并且能够提高计算机资源利用率,降低系统故障风险的方法、装置与电子设备。基于上述目的,本专利技术提供了一种处理定时任务的方法,包括:加载定时任务数据;根据所述定时任务数据创建定时任务和定时器;当所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务;执行所述待执行任务。可选的,所述根据所述定时任务数据创建定时任务,包括:根据所述定时任务数据中的业务逻辑确定所述定时任务的具体规则;根据所述具体规则创建所述定时任务;将所述定时任务的任务信息保存到内存与外存储单元,并保持所述内存与所述外存储单元中的所述任务信息一致。可选的,所述根据所述定时任务数据创建定时任务,还包括:根据所述定时任务数据对所述定时任务进行优先级设定;根据所述定时任务数据获取所述定时任务的分类属性信息,根据所述分类属性信息对所述定时任务进行分类。可选的,所述根据所述定时任务数据创建定时器,包括:根据所述定时任务数据中的业务逻辑确定所述定时任务的具体规则;根据不同所述定时任务的具体规则设定触发时间与频率;根据所述触发时间与所述频率创建所述定时器。可选的,所述根据所述定时任务数据创建定时器,包括:在根据所述分类属性信息对所述定时任务进行分类之后,针对不同种类的所述定时任务的所述具体规则,设定与所述不同种类的定时任务相对应的触发时间与频率,根据所述触发时间与所述频率创建所述定时器;针对特定优先级的所述定时任务单独配置定时器。可选的,所述当所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务,包括:当所述定时器触发时,读取所述内存中的所述任务信息;在当前所述定时器触发时刻,根据所述任务信息判断相应所述定时任务是否满足执行条件;筛选出满足执行条件的所述定时任务作为所述待执行任务,将所述待执行任务加入执行队列。可选的,所述当所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务,还包括:当所述任务信息超过预先设定的阈值时,采取多线程分段处理的方式对所述定时任务进行筛选;在将所述待执行任务加入所述执行队列时,按照所述待执行任务优先级由高到低的顺序放入所述执行队列。可选的,所述执行所述待执行任务,包括:采用多线程并发处理方式利用线程池来执行所述待执行任务;将执行异常或失败的所述待执行任务重新放入执行队列;对于缺少执行所需数据的所述待执行任务,从所述外存储单元获取相应的所述任务信息再执行。基于上述目的,本专利技术提供了一种处理定时任务的装置,包括:任务加载模块,用于加载定时任务数据;定时模块,用于根据所述定时任务数据创建定时任务和定时器;筛选模块,用于在所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务;执行模块,用于执行所述待执行任务。可选的,所述定时模块根据所述定时任务数据创建定时任务,包括:根据所述定时任务数据中的业务逻辑确定所述定时任务的具体规则;根据所述具体规则创建所述定时任务;将所述定时任务的任务信息保存到内存与外存储单元,并保持所述内存与所述外存储单元中的所述任务信息一致。可选的,所述定时模块根据所述定时任务数据创建定时任务,还包括:根据所述定时任务数据对所述定时任务进行优先级设定;根据所述定时任务数据获取所述定时任务的分类属性信息,根据所述分类属性信息对所述定时任务进行分类。可选的,所述定时模块根据所述定时任务数据创建定时器,包括:根据所述定时任务数据中的业务逻辑确定所述定时任务的具体规则;根据不同所述定时任务的具体规则设定触发时间与频率;根据所述触发时间与所述频率创建所述定时器。可选的,所述定时模块根据所述定时任务数据创建定时器,包括:在根据所述分类属性信息对所述定时任务进行分类之后,针对不同种类的所述定时任务的所述具体规则,设定与所述不同种类的定时任务相对应的触发时间与频率,根据所述触发时间与所述频率创建所述定时器;针对特定优先级的所述定时任务单独配置定时器。可选的,所述筛选模块当所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务,包括:当所述定时器触发时,读取所述内存中的所述任务信息;在当前所述定时器触发时刻,根据所述任务信息判断相应所述定时任务是否满足执行条件;筛选出满足执行条件的所述定时任务作为所述待执行任务,将所述待执行任务加入执行队列。可选的,所述筛选模块当所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务,还包括:当所述任务信息超过预先设定的阈值时,采取多线程分段处理的方式对所述定时任务进行筛选;在将所述待执行任务加入所述执行队列时,按照所述待执行任务优先级由高到低的顺序放入所述执行队列。可选的,所述执行模块执行所述待执行任务,包括:采用多线程并发处理方式利用线程池来执行所述待执行任务;将执行异常或失败的所述待执行任务重新放入执行队列;对于缺少执行所需数据的所述待执行任务,从所述外存储单元获取相应的所述任务信息再执行。基于上述目的,本专利技术还提供了一种处理定时任务的电子设本文档来自技高网...

【技术保护点】
1.一种处理定时任务的方法,其特征在于,包括:/n加载定时任务数据;/n根据所述定时任务数据创建定时任务和定时器;/n当所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务;/n执行所述待执行任务。/n

【技术特征摘要】
1.一种处理定时任务的方法,其特征在于,包括:
加载定时任务数据;
根据所述定时任务数据创建定时任务和定时器;
当所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务;
执行所述待执行任务。


2.根据权利要求1所述的方法,其特征在于,所述根据所述定时任务数据创建定时任务,包括:
根据所述定时任务数据中的业务逻辑确定所述定时任务的具体规则;
根据所述具体规则创建所述定时任务;
将所述定时任务的任务信息保存到内存与外存储单元,并保持所述内存与所述外存储单元中的所述任务信息一致。


3.根据权利要求2所述的方法,其特征在于,所述根据所述定时任务数据创建定时任务,还包括:
根据所述定时任务数据对所述定时任务进行优先级设定;
根据所述定时任务数据获取所述定时任务的分类属性信息,根据所述分类属性信息对所述定时任务进行分类。


4.根据权利要求1所述的方法,其特征在于,所述根据所述定时任务数据创建定时器,包括:
根据所述定时任务数据中的业务逻辑确定所述定时任务的具体规则;
根据不同所述定时任务的具体规则设定触发时间与频率;
根据所述触发时间与所述频率创建所述定时器。


5.根据权利要求3所述的方法,其特征在于,所述根据所述定时任务数据创建定时器,包括:
在根据所述分类属性信息对所述定时任务进行分类之后,针对不同种类的所述定时任务的所述具体规则,设定与所述不同种类的定时任务相对应的触发时间与频率,根据所述触发时间与所述频率创建所述定时器;
针对特定优先级的所述定时任务单独配置定时器。


6.根据权利要求2所述的方法,其特征在于,所述当所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务,包括:
当所述定时器触发时,读取所述内存中的所述任务信息;
在当前所述定时器触发时刻,根据所述任务信息判断相应所述定时任务是否满足执行条件;
筛选出满足执行条件的所述定时任务作为所述待执行任务,将所述待执行任务加入执行队列。


7.根据权利要求6所述的方法,其特征在于,所述当所述定时器触发时,筛选出满足执行条件的所述定时任务作为待执行任务,还包括:
当所述任务信息超过预先设定的阈值时,采取多线程分段处理的方式对所述定时任务进行筛选;
在将所述待执行任务加入所述执行队列时,按照所述待执行任务优先级由高到低的顺序放入所述执行队列。


8.根据权利要求2所述的方法,其特征在于,所述执行所述待执行任务,包括:
采用多线程并发处理方式利用线程池来执行所述待执行任务;
将执行异常或失败的所述待执行任务重新放入执行队列;
对于缺少执行所需数据的所述待执行任务,从所述外存储单元获取相应的所述任务信息再执行。


9.一种处理定时任务的装置,其特征在于,包括:
任务加载模块,用于加载定时任务数据;
定时模块,用于根据所述定时任务数据创建定时任务和定时器...

【专利技术属性】
技术研发人员:邹固恒
申请(专利权)人:深圳市鸿合创新信息技术有限责任公司
类型:发明
国别省市:广东;44

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

1