定时任务执行时间推荐方法、装置、设备和存储介质与流程

文档序号:16780894发布日期:2019-02-01 19:07阅读:222来源:国知局
定时任务执行时间推荐方法、装置、设备和存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种定时任务执行时间推荐方法、装置、设备和存储介质。



背景技术:

随着计算机技术的快速发展,各行各业都会使用计算机进行实际的操作与控制。为了便于管理,以及节省计算机资源,通常会在计算机中设置定时任务。目前,定时任务设置成功后,根据已设置的执行时间、执行频率等进行运行,以减少计算机资源的管理资源开销。在设置定时任务后,往往需要对定时任务的执行时间进行设置。

在定时任务创建过程中,一般由用户来指定运行的时间。若用户选择任务的运行周期为一小时,那么具体需要选择任务在每小时的第几分运行;若选择任务的运行周期为一天,则需要选择任务在每天的第几小时开始运行,以此类推。

但是,用户在选择运行时间的时候,特别是对系统不了解的用户,往往只会选择默认的推荐时间或者根据自己的喜好随便选择。这就导致了大量任务可能会在某一时间点堆积,执行的时候,大量任务并发执行使得系统负载很高。



技术实现要素:

有鉴于此,有必要针对现有用户在对创建的定时任务设置执行时间时,盲目选择一个执行时间,导致大量任务可能会在某一时间点堆积的问题,提供一种定时任务执行时间推荐方法、装置、设备和存储介质。

一种定时任务执行时间推荐方法,包括如下步骤:

获取用户设置的定时任务的执行周期,确定所述执行周期对应的最小时间颗粒度;

根据所述最小时间颗粒度,将所述执行周期等分为若干个第一执行时段;

获取数据库中所有已设定执行时间的待执行定时任务;

统计并计算每一所述第一执行时段内的待执行定时任务数量,筛选出待执行定时任务数量最少的所述第一执行时段,即为对系统运行负载最轻的执行时段;

将所述对系统运行负载最轻的执行时段作为推荐的执行时间,推送至设置

定时任务的执行周期的用户客户端。

在其中一个实施例中,所述获取用户设置的定时任务的执行周期,确定所述执行周期对应的最小时间颗粒度,包括:

获取所述定时任务的所述执行周期;

调用周期-最小时间颗粒度关系映射表,根据所述执行周期,在周期-最小时间颗粒度关系映射表中检索匹配与所述执行周期对应的所述最小时间颗粒度。

在其中一个实施例中,所述获取数据库中所有已设定执行时间的待执行定时任务,包括:

获取所述数据库的访问权限,并连接到所述数据库,所述数据库中存储有所有所述待执行定时任务以及每一所述待执行定时任务的元信息,所述元信息包括所述待执行定时任务的执行周期和下次执行时间;

发送查询脚本至所述数据库后执行所述查询脚本,获取所有所述待执行定时任务以及每一所述待执行定时任务的执行周期和下次执行时间,所述查询脚本以所述待执行定时任务为查询参数或者查询关键词。

在其中一个实施例中,所述统计并计算每一所述第一执行时段内的待执行定时任务数量,筛选出待执行定时任务数量最少的所述第一执行时段,即为对系统运行负载最轻的执行时段,包括:

根据每一所述待执行定时任务的执行周期和下次执行时间,计算出每一所述待执行定时任务所属的第二执行时段;

分别将属于同一执行时段的所述第二执行时段内的待执行定时任务,进行加减运算,得出所有所述第二执行时段内的待执行定时任务数量;

筛选出与所述第一执行时段重合的所述第二执行时段,并分别列出与所述第一执行时段重合的所述第二执行时段内的所述待执行定时任务的数量,得到所属每一所述第一执行时段内的待执行定时任务数量;

筛选出待执行定时任务数量最少的所述第一执行时段,即为对系统运行负载最轻的执行时段。

在其中一个实施例中,所述将所述对系统运行负载最轻的执行时段作为推荐的执行时间,推送至设置定时任务的执行周期的用户客户端,包括:

将所述对系统运行负载最轻的执行时段生成待推送消息,并根据所述待推送消息生成提示信息,所述提示信息中携带有对系统运行负载最轻的执行时段的提示字样;

将所述待推送消息和所述提示信息推送至设置定时任务的执行周期的用户客户端。

在其中一个实施例中,所述获取所述数据库的访问权限,并连接到所述数据库,所述数据库中存储有所有所述待执行定时任务以及每一所述待执行定时任务的元信息,所述元信息包括所述待执行定时任务的执行周期和下次执行时间,包括:

通过hibernate对象关系映射框架与所述数据库进行连接;

使用远程连接权限的用户名和密码获取所述数据库的访问权限。

在其中一个实施例中,所述将所述对系统运行负载最轻的执行时段作为推荐的执行时间,推送至设置定时任务的执行周期的用户客户端之前,还包括:

将所述第一执行时段按照待执行定时任务数量的多少进行排序,待执行定时任务数量最少的所述执行时段排在第一位,待执行定时任务数量最多的所述执行时段排在最后一位;

将排好序的所述第一执行时段作为推荐的执行时间,发送至设置定时任务的执行周期的用户客户端。

一种定时任务执行时间推荐装置,包括如下模块:

执行周期获取模块,设置为获取用户设置的定时任务的执行周期,确定所述执行周期对应的最小时间颗粒度;

执行周期划分模块,设置为根据所述最小时间颗粒度,将所述执行周期等分为若干个第一执行时段;

待执行定时任务获取模块,设置为获取数据库中所有已设定执行时间的待执行定时任务;

执行时段筛选模块,设置为统计并计算每一所述第一执行时段内的待执行定时任务数量,筛选出待执行定时任务数量最少的所述第一执行时段,即为对系统运行负载最轻的执行时段;

执行时间推送模块,设置为将所述对系统运行负载最轻的执行时段作为推荐的执行时间,推送至设置定时任务的执行周期的用户客户端。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行上述定时任务执行时间推荐方法的步骤。

一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行上述定时任务执行时间推荐方法的步骤。

上述定时任务执行时间推荐方法、装置、设备和存储介质,包括:获取用户设置的定时任务的执行周期,确定所述执行周期对应的最小时间颗粒度;根据所述最小时间颗粒度,将所述执行周期等分为若干个第一执行时段;获取数据库中所有已设定执行时间的待执行定时任务;统计并计算每一所述第一执行时段内的待执行定时任务数量,筛选出待执行定时任务数量最少的所述第一执行时段,即为对系统运行负载最轻的执行时段;将所述对系统运行负载最轻的执行时段作为推荐的执行时间,推送至设置定时任务的执行周期的用户客户端。本技术方案通过统计并计算已有定时任务的执行时段,筛选出定时任务数量最少的执行时段,作为向用户推荐的执行时间,解决了当前由于用户盲目选择执行时间从而导致大量定时任务可能会在某一时间点堆积,执行时,大量定时任务并发执行使得系统负载过高的问题。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。

图1为本发明的一种定时任务执行时间推荐方法的整体流程图;

图2为本发明的一种定时任务执行时间推荐方法中的获取最小时间颗粒度过程的示意图;

图3为本发明的一种定时任务执行时间推荐方法中的获取已有待执行定时任务过程的示意图;

图4为本发明的一种定时任务执行时间推荐方法中的计算对系统运行负载最轻执行时段过程的示意图;

图5为本发明的一种定时任务执行时间推荐装置的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

图1为本发明的一种定时任务执行时间推荐方法的整体流程图,如图1所示,一种定时任务执行时间推荐方法,包括以下步骤:

步骤s1,获取用户设置的定时任务的执行周期,确定所述执行周期对应的最小时间颗粒度。

其中,在设置定时任务后,往往需要对定时任务的执行时间进行设置,在定时任务创建过程中,一般由用户来指定定时任务的执行时间。在设定执行时间时,先设定执行周期为每小时、每天、每月或者每年,如果用户选择每小时为执行周期,即定时任务每隔一小时执行一次,在设定完执行周期后,需要进一步设定执行时间,即定时任务在每小时的第几分钟执行。若用户选择执行周期为每天,则需要进一步设定定时任务在每天的几点几分开始执行。若用户选择执行周期为每月,则需要进一步设定定时任务在每月的多少号开始执行。以此类推。

上述步骤执行时,在定时任务所在服务器的前台客户端设置供用户输入定时任务执行周期的前端web页面,待用户输入设定的定时任务执行周期后,获取该周期数值返回服务器的后台,供用户设定的执行周期可预先设置为每小时、每天、每月或者每年。后台设有对应不同的执行周期的最小时间颗粒度,根据前台返回的用户设定的执行周期确定最小时间颗粒度。

比如执行周期设置为每小时,则最小时间颗粒度可设置为5分钟、10分钟、15分钟、20分钟或者30分钟,在其中一个优选的实施例中,执行周期为每小时的,其最小时间颗粒度设置为5分钟。若执行周期设置为每天,则最小时间颗粒度可设置为30分钟、45分钟或者60分钟,在其中一个优选的实施例中,执行周期为每天的,其最小时间颗粒度设置为60分钟。根据执行周期和执行周期对应的最小时间颗粒度建立周期-最小时间颗粒度关系映射表。

步骤s2,根据所述最小时间颗粒度,将所述执行周期等分为若干个第一执行时段。

上述步骤执行时,在确定用户设置的执行周期所对应的最小时间颗粒度之后,将执行周期按照最小时间颗粒度等分为若干个第一执行时段。若执行周期为每小时,最小时间颗粒度为5分钟,则执行周期每小时等分后的若干个第一执行时段分别为:0~5分、5~10分、10~15分、15~20分、20~25分,25~30分钟、30~35分、35~40分、40~45分、45~50分、50~55分、55~60分,每一第一执行时段的跨度均为一个最小时间颗粒度。

步骤s3,获取数据库中所有已设定执行时间的待执行定时任务。

其中,所有已设定执行时间的定时任务均存入后台数据库中,存入数据库中的包括定时任务的元信息,元信息包括定时任务的执行周期和下次执行时间。

上述步骤执行时,获取数据库的访问权限,连接到数据库。然后发送查询脚本至数据库中,并执行查询脚本,查询并获得所有待执行定时任务以及每一待执行定时任务的执行周期和下次执行时间,查询脚本以待执行定时任务为查询参数或者查询关键词。。

步骤s4,统计并计算每一所述第一执行时段内的待执行定时任务数量,筛选出待执行定时任务数量最少的所述第一执行时段,即为对系统运行负载最轻的执行时段。

上述步骤执行时,先以待执行定时任务的名称、执行周期和下次执行时间建立一个表格,在表格中统计并计算出每个待执行定时任务所属的第二执行时段,把计算出的第二执行时段记录在对应待执行定时任务所在的行,再把落在同一执行时段内的第二执行时段的待执行定时任务筛选出来,对它们进行加减运算,得到每个第二执行时段内的待执行定时任务数量。

再分别筛选出落在每一第一执行时段范围内的第二执行时段以及该第二执行时段内的待执行定时任务数量,即得到每一第一执行时段内的待执行定时任务数量。比如第一执行时段分别为:0~5分、5~10分、10~15分、15~20分、20~25分,25~30分、30~35分、35~40分、40~45分、45~50分、50~55分、55~60分。则得到的结果分别为0~5分内的待执行定时任务的数量,5~10分内的待执行定时任务数量,10~15分内的待执行定时任务数量,15~20分内的待执行定时任务数量,20~25分内的待执行定时任务数量,25~30分内的待执行定时任务数量,30~35分内的待执行定时任务数量,35~40分内的待执行定时任务数量,40~45分内的待执行定时任务数量,45~50分内的待执行定时任务数量,50~55分内的待执行定时任务数量和55~60分内的待执行定时任务数量。

步骤s5,将所述对系统运行负载最轻的执行时段作为推荐的执行时间,推送至设置定时任务的执行周期的用户客户端。

本实施例,通过将用户设置的执行周期等分为若干第一执行时段,统计并计算数据库中落在第一执行时段范围内的待执行定时任务数量,并筛选出待执行定时任务数量最少的第一执行时段推送给用户客户端,解决了当前由于用户盲目选择执行时间从而导致大量定时任务可能会在某一时间点堆积,执行时,大量定时任务并发执行使得系统负载过高的问题。

在一个实施例中,图2为本发明的一种定时任务执行时间推荐方法中的获取最小时间颗粒度过程的示意图,如图2所示,一种定时任务执行时间推荐方法的获取最小时间颗粒度过程,包括如下步骤:

步骤s101,获取所述定时任务的所述执行周期。

步骤s102,调用周期-最小时间颗粒度关系映射表,根据所述执行周期,在周期-最小时间颗粒度关系映射表中检索匹配与所述执行周期对应的所述最小时间颗粒度。

上述步骤执行时,获取用户设定的执行周期,使用该执行周期的数值在周期-最小时间颗粒度关系映射表中,找到与该执行周期相对应的最小时间颗粒度。其中,周期-最小时间颗粒度关系映射表是事先创建好的,它是根据执行周期和事先设置的最小时间颗粒度创建的。

其中,不同执行周期对应的最小时间颗粒度可设置为多个,在一种最佳的实施例中,执行周期为每小时的,其最小时间颗粒度为5分钟,执行周期为每天的,其最小时间颗粒度为60分钟。

本实施例,通过事先创建并调用周期-最小时间颗粒度关系映射表来获取执行周期所对应的最小时间颗粒度,方便快捷,并且准确地获取了最小时间颗粒度,方便后续准确划分执行时段。

在一个实施例中,图3为本发明的一种定时任务执行时间推荐方法中的获取已有待执行定时任务过程的示意图,如图3所示,一种定时任务执行时间推荐方法的获取已有待执行定时任务的过程,包括如下步骤:

步骤s301,获取所述数据库的访问权限,并连接到所述数据库,所述数据库中存储有所有所述待执行定时任务以及每一所述待执行定时任务的元信息,所述元信息包括所述待执行定时任务的执行周期和下次执行时间。

步骤s302,发送查询脚本至所述数据库后执行所述查询脚本,获取所有所述待执行定时任务以及每一所述待执行定时任务的执行周期和下次执行时间,所述查询脚本以所述待执行定时任务为查询参数或者查询关键词。

本实施例,通过获取数据库的访问权限,连接到数据库,并发送查询脚本获取待执行定时任务的执行周期和下次执行时间,提高了获取的效率和准确度。

在一个实施例中,图4为本发明的一种定时任务执行时间推荐方法中的计算对系统运行负载最轻执行时段过程的示意图,如图4所示,一种定时任务执行时间推荐方法的计算对系统运行负载最轻执行时段的过程,包括如下步骤:

步骤s401,根据每一所述待执行定时任务的执行周期和下次执行时间,计算出每一所述待执行定时任务所属的第二执行时段。

上述步骤执行时,根据待执行定时任务的执行周期和下次执行时间可以计算出待执行定时任务的执行时段,比如,执行周期为每小时,下次执行时间为9时22分的待执行定时任务,其执行时段为20~25分;以此类推,计算出所有待执行定时任务的执行时段。

步骤s402,分别将属于同一执行时段的所述第二执行时段内的待执行定时任务,进行加减运算,得出所有所述第二执行时段内的待执行定时任务数量。

上述步骤执行时,所有待执行定时任务所属的执行时段计算完成后,会有很多在相同执行时段内执行的待执行定时任务,对属于同一执行时段内的待执行定时任务进行加减运算,统计出每一执行时段内的待执行定时任务数量。

步骤s403,筛选出与所述第一执行时段重合的所述第二执行时段,并分别列出与所述第一执行时段重合的所述第二执行时段内的所述待执行定时任务的数量,得到所属每一所述第一执行时段内的待执行定时任务数量。

上述步骤执行时,依次筛选出与用户设定的执行周期划分的第一执行时段重合的执行时段及其待执行定时任务数量,并对其进行标注。

步骤s404,筛选出待执行定时任务数量最少的所述第一执行时段,即为对系统运行负载最轻的执行时段。

上述步骤执行时,对标注的执行时段进行筛选,筛选出其中待执行定时任务数量最少的执行时段推送给用户客户端,用户可以选择该执行时段内的任何时间作为执行时间。

本实施例,通过统计、计算和筛选得出对系统运行负载最轻执行时段,节省了时间并且高效准确。

在一个实施例中,将推荐的执行时间推送给用户客户端,包括如下步骤:

将所述对系统运行负载最轻的执行时段生成待推送消息,并根据所述待推送消息生成提示信息,所述提示信息中携带有对系统运行负载最轻的执行时段的提示字样;

将所述待推送消息和所述提示信息推送至设置定时任务的执行周期的用户客户端。

上述步骤执行时,将对系统运行负载最轻的执行时段作为推荐的执行时间生成待推送消息,比如用户设置的执行周期为每小时,系统计算出的对系统运行负载最轻的执行时段为每小时的0~5分,则待推送消息为:x时0分~x时5分。其中,根据待推送消息,系统生成提示信息,提示信息为:x时0分~x时5分为系统运行负载最轻的执行时段。

本实施例,向用户客户端推送的推荐执行时间中包含有提示信息,使得用户一目了然向其推荐执行时间的目的,增加了推荐的执行时间的采用率。

在一个实施例中,获取数据库的访问权限,并连接到该数据库,包括如下步骤:

通过hibernate对象关系映射框架与所述数据库进行连接;

使用远程连接权限的用户名和密码获取所述数据库的访问权限。

hibernate是一个开放源代码的对象关系映射框架,它对java数据库连接(jdbc)进行了非常轻量级的对象封装,它将简单的java对象(pojo)与数据库表建立映射关系,是一个全自动的对象关系映射(orm)框架,hibernate可以自动生成sql语句,并且自动执行。

jdbc是一种用于执行sql语句的javaapi,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。

所述将所述对系统运行负载最轻的执行时段作为推荐的执行时间,推送至设置定时任务的执行周期的用户客户端之前,还包括:

将所述第一执行时段按照待执行定时任务数量的多少进行排序,待执行定时任务数量最少的所述执行时段排在第一位,待执行定时任务数量最多的所述执行时段排在最后一位;

将排好序的所述第一执行时段作为推荐的执行时间,发送至设置定时任务的执行周期的用户客户端。

本实施例,将按照待执行定时任务数量的多少排好序的执行时段推送给用户,可以供用户有多项选择。

一种定时任务执行时间推荐装置,如图5所示,包括如下模块:

执行周期获取模块,设置为获取用户设置的定时任务的执行周期,确定所述执行周期对应的最小时间颗粒度;

执行周期划分模块,设置为根据所述最小时间颗粒度,将所述执行周期等分为若干个第一执行时段;

待执行定时任务获取模块,设置为获取数据库中所有已设定执行时间的待执行定时任务;

执行时段筛选模块,设置为统计并计算每一所述第一执行时段内的待执行定时任务数量,筛选出待执行定时任务数量最少的所述第一执行时段,即为对系统运行负载最轻的执行时段;

执行时间推送模块,设置为将所述对系统运行负载最轻的执行时段作为推荐的执行时间,推送至设置定时任务的执行周期的用户客户端。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行计算机可读指令时实现上述各实施例中所述的定时任务执行时间推荐方法的步骤。

在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中所述的定时任务执行时间推荐方法的步骤。其中,所述存储介质可以为非易失性存储介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1