定时任务调度方法以及定时任务处理方法与流程

文档序号:18142204发布日期:2019-07-10 11:12阅读:249来源:国知局
定时任务调度方法以及定时任务处理方法与流程

本申请涉及计算机数据处理技术领域,特别是涉及一种定时任务调度方法方法和装置,以及一种定时任务处理方法和装置。



背景技术:

在互联网的企业中,各web应用系统中执行相关具有规律性的操作,在行业中这种具有规律性、周期性的操作定义为定时任务。在企业的web应用系统中,随着应用业务的不断增多,定时任务的数量也不断增多,其复杂度也不断增大;传统的定时任务都是在不同的主机独立运行的,随着定时任务量的增加,运行定时任务需要的资源就会相应增加,到一定的任务量会导致性能瓶颈,任务量产生堆积,导致定时任务执行准确性和频率性出现故障。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种定时任务调度方法和装置,以及一种定时任务处理方法和装置。

一种定时任务调度方法,包括以下步骤:

读取数据库中各定时任务的运行周期,根据所述运行周期从各所述定时任务中确定目标定时任务;

将所述目标定时任务的预估运行时长与预设时长指标值进行对比,并对所述目标定时任务是否存在依赖锁定进行判定;

当所述目标定时任务的预估运行时长小于所述预设时长指标值,且无依赖锁定时,确定所述目标定时任务的运行方式;

将所述目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中;其中,所述目标定时任务的元数据用于指示所述调度端根据所述元数据调用执行服务器执行所述目标定时任务。

在其中一个实施例中,所述对所述目标定时任务是否存在依赖锁定进行判定的步骤,包括:

读取所述目标定时任务的元数据,从所述元数据中确定所述目标定时任务的依赖任务的第一任务标识符以及依赖状态;

读取所述第一任务标识符对应的定时任务的运行状态;

若所述运行状态与所述依赖状态不匹配,则判定所述目标定时任务存在依赖锁定。

在其中一个实施例中,所述将所述目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中的步骤,包括:

获取所述目标定时任务的第二任务标识符;

对所述第二任务标识符进行哈希运算,得到所述第二任务标识符的哈希值;

根据所述哈希值从与所述目标定时任务的运行方式对应的调度端中确定目标调度端,并将所述目标任务的元数据发送至目标调度端的任务队列中。

一种定时任务调度装置,所述装置包括:

主控制端读取数据库中各定时任务的运行周期,根据所述运行周期从各所述定时任务中确定目标定时任务;

所述主控制端将所述目标定时任务的预估运行时长与预设时长指标值进行对比,并对所述目标定时任务是否存在依赖锁定进行判定;

当所述目标定时任务的预估运行时长小于所述预设时长指标值且无依赖锁定时,所述主控制端确定所述目标定时任务的运行方式;

所述主控制端将所述目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中;

所述调度端查询任务队列,当从所述任务队列中查询到目标定时任务的元数据时,所述调度端根据所述元数据调用执行服务器执行所述目标定时任务。

上述定时任务调度方法和装置,通过读取数据库中各定时任务的运行周期,确定当前的目标定时任务,当所述目标定时任务的预估运行时长小于预设时长指标值且不存在依赖锁定时,将所述目标定时任务的元数据发送至与目标定时任务的运行方式对应的调度端的任务队列中,实现将定时任务调度到不同的调度端中,由调度端调用执行服务器执行所述目标定时任务,利用任务队列将定时任务的调度、定时任务的执行进行解耦,实现多服务器多系统间进行定时任务的处理工作,使得定时任务的处理不受单机性能的影响,有效避免性能瓶颈的产生以及定时任务执行准确性和频率性的下降。

一种定时任务处理方法,所述方法包括:

查询任务队列;

当从所述任务队列中查询到目标定时任务的元数据时,根据所述元数据调用执行服务器执行所述目标定时任务;其中,所述目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定;所述目标定时任务的元数据是由主控制端根据所述目标定时任务的运行方式发送至所述任务队列的。

在其中一个实施例中,所述运行方式包括本地运行代码类型;

根据所述元数据调用执行服务器执行所述目标定时任务的步骤,包括:

从所述元数据中确定第一执行服务器,并从所述主控制端中拉取与所述目标定时任务对应的程序代码;

将所述程序代码发送至所述第一执行服务器,所述程序代码用于指示所述第一执行服务器运行所述程序代码;

接收所述第一执行服务器返回的结果数据。

在其中一个实施例中,所述运行方式包括调用接口运行类型;

根据所述元数据调用执行服务器执行所述目标定时任务的步骤,包括:

从所述元数据中确定第二执行服务器,触发所述第二执行服务器的调用接口;

接收所述第二执行服务器通过所述调用接口返回的结果数据。

一种定时任务处理装置,所述装置包括:

任务队列查询模块,用于查询任务队列;

定时任务执行模块,用于在从所述任务队列中查询到目标定时任务的元数据时,根据所述元数据调用执行服务器执行所述目标定时任务;其中,所述目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定;所述目标定时任务的元数据是由主控制端根据所述目标定时任务的运行方式发送至所述任务队列的。

上述定时任务处理方法和装置,在主控制端根据所述目标定时任务的运行方式发送至与运行方式对应的任务队列后,通过查询任务队列中的目标定时任务的元数据,根据所述元数据调用执行服务器执行所述目标定时任务,实现将定时任务调度到不同的调度端中,由调度端调用执行服务器执行所述目标定时任务,利用任务队列将定时任务的调度、定时任务的执行进行解耦,实现多服务器多系统间进行定时任务的处理工作,使得定时任务的处理不受单机性能的影响,有效避免性能瓶颈的产生以及定时任务执行准确性和频率性的下降。

一种定时任务处理方法,其特征在于,所述方法包括:

主控制端读取数据库中各定时任务的运行周期,根据所述运行周期从各所述定时任务中确定目标定时任务;

所述主控制端将所述目标定时任务的预估运行时长与预设时长指标值进行对比,并对所述目标定时任务是否存在依赖锁定进行判定;

当所述目标定时任务的预估运行时长小于所述预设时长指标值且无依赖锁定时,所述主控制端确定所述目标定时任务的运行方式;

所述主控制端将所述目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中;

所述调度端查询任务队列,当从所述任务队列中查询到目标定时任务的元数据时,所述调度端根据所述元数据调用执行服务器执行所述目标定时任务。

在其中一个实施例中,所述运行方式包括本地运行代码类型;

所述调度端根据所述元数据调用执行服务器执行所述目标定时任务的步骤,包括:

所述调度端从所述元数据中确定第一执行服务器,并从所述主控制端中拉取与所述目标定时任务对应的程序代码;

所述调度端将所述程序代码发送至所述第一执行服务器,所述程序代码用于指示所述第一执行服务器运行所述程序代码;

所述调度端接收所述第一执行服务器返回的结果数据。

上述定时任务处理方法,通过读取数据库中各定时任务的运行周期,确定当前的目标定时任务,当所述目标定时任务的预估运行时长小于预设时长指标值且不存在依赖锁定时,将所述目标定时任务的元数据发送至与目标定时任务的运行方式对应的调度端的任务队列中,实现将定时任务调度到不同的调度端中,由调度端调用执行服务器执行所述目标定时任务,利用任务队列将定时任务的调度、定时任务的执行进行解耦,实现多服务器多系统间进行定时任务的处理工作,使得定时任务的处理不受单机性能的影响,有效避免性能瓶颈的产生以及定时任务执行准确性和频率性的下降。

附图说明

图1为一个实施例中定时任务处理方法的应用场景图;

图2为一个实施例中定时任务调度方法的流程示意图;

图3为一个实施例中定时任务处理方法的流程示意图;

图4为另一个实施例中定时任务处理方法的流程示意图;

图5为一个实施例中定时任务调度装置的结构框图;

图6为一个实施例中定时任务处理装置的结构框图;

图7为另一个实施例中定时任务调度装置的结构框图;

图8为一个实施例中计算机设备的内部结构图。

具体实施方式

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

本申请提供的定时任务调度方法或定时任务处理方法,可以应用于如图1所示的应用环境中。其中,主控制端110通过网络与多个调度端120通过网络进行通信,调度端120与多个不同的执行服务器130通过网络进行通信,主控制端110、调度端120以及执行服务器130形成分布式无状态集群架构系统。主控制端110读取数据库中各定时任务的运行周期,确定当前的目标定时任务,当目标定时任务的预估运行时长小于预设时长指标值且不存在依赖锁定时,将目标定时任务的元数据发送至与目标定时任务的运行方式对应的调度端的任务队列中,调度端每时每刻查询任务队列,当从任务队列中查询到目标定时任务的元数据时,调度端根据元数据调用执行服务器130执行目标定时任务,实现利用任务队列将定时任务的调度、定时任务的执行进行解耦,实现多服务器多系统间进行定时任务的处理工作,使得定时任务的处理达到不受单机性能的影响,有效避免性能瓶颈的产生以及定时任务执行准确性和频率性的下降。其中,主控制端110、调度端120以及执行服务器130均可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种定时任务调度方法,以该方法应用于图1中的主控制端为例进行说明,包括以下步骤:

步骤s210:读取数据库中各定时任务的运行周期,根据运行周期从各定时任务中确定目标定时任务。

本步骤中,主控制端可以每一分钟启动一个并发进程,通过该并发进程读取数据库中各个定时任务的运行周期,从而根据数据库中各个定时任务的运行周期确定在当前时刻需要运行的目标定时任务;

具体的,主控制端可以预先将各个定时任务的运行周期存储于数据库中,其中定时任务的运行周期的定义方式可以采用支持linuxcrontab的表达式,实现支撑部署在linuxcrontab的定时任务无缝迁移。

步骤s220:将目标定时任务的预估运行时长与预设时长指标值进行对比,并对目标定时任务是否存在依赖锁定进行判定。

在本步骤中,预设时长指标值可以包括用户自行设置的定时任务最大运行时长、业务系统默认的定时任务最大运行时长以及定时任务运行周期的时间间隔;依赖锁定是指,当与目标定时任务存在依赖关系的其他定时任务的运行状态处于运行中,则目标定时任务存在依赖锁定;

由于定时任务是周期性运行的,若某一定时任务在上一个周期启动的未运行结束,在当前周期该定时任务再次执行,同一定时任务在不同时间点的叠加运行,往往会造成定时任务前后拥堵,对业务系统产生任务堆积压力,更甚者,由于定时任务的业务特征,同一定时任务在不同时间点的叠加运行会造成业务数据发生冲突,造成业务系统宕机;因而,主控制端在确定到当前时刻需要运行的目标定时任务后,从目标定时任务的元数据中获取该目标定时任务的预估运行时间,通过将预估运行时间与预设时长指标值进行对比,有效避免定时任务的叠加运行,避免任务量的堆积。同时,主控制端通过对目标定时任务是否存在依赖锁定进行判定,使得一些具有顺序执行的任务能够相互制约,实现定时任务与定时任务间的关联性互斥设计,有效解决定时任务单体性问题。

步骤s230:当目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定时,确定目标定时任务的运行方式。

定时任务的运行方式包括两种类型,一是通过调用web应用接口,从而触发web应用执行定时任务,另一种是通过在web应用所在的服务器执行相关程序代码,从而实现执行定时任务的功能。当目标定时任务的预估运行时长小于预设时长指标值且无依赖锁定时,目标定时任务符合运行条件,主控制端可读取目标定时任务的元数据,确定目标定时任务的运行方式;当目标定时任务的预估运行时长大于预设时长指标值或目标定时任务存在依赖锁定时,则认为目标定时任务不符合运行条件,主控制端丢弃本次目标定时任务的运行。

步骤s240:将目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中;其中,目标定时任务的元数据用于指示调度端根据元数据调用执行服务器执行目标定时任务。

执行服务器是指实际完成定时任务功能的web应用所在的服务器;对应于不同的运行方式,调度端也分为两种不同分类的调度端;具体的,主控制端在确定到目标定时任务的运行方式后,将目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中,调度端实时查询任务队列,当调度端在任务队列查询到目标定时任务的元数据后,根据元数据调用web应用所在的执行服务器执行目标定时任务。

上述定时任务调度方法中,通过读取数据库中各定时任务的运行周期,确定当前的目标定时任务,当目标定时任务的预估运行时长小于预设时长指标值且不存在依赖锁定时,将目标定时任务的元数据发送至与目标定时任务的运行方式对应的调度端的任务队列中,实现将定时任务调度到不同的调度端中,由调度端调用执行服务器执行目标定时任务,利用任务队列将定时任务的调度、定时任务的执行进行解耦,实现多服务器多系统间进行定时任务的处理工作,使得定时任务的处理不受单机性能的影响,有效避免性能瓶颈的产生以及定时任务执行准确性和频率性的下降,并且能够按性能需求增加或减少调度端实现扩缩容;同时,通过将目标定时任务的预估运行时长与预设时长指标值进行对比以及对目标定时任务是否存在依赖锁定进行判定,有效解决定时任务运行前后拥堵问题,并且可以实现不同定时任务间运行关联性互斥设计,解决定时任务单体性问题。

在一个实施例中,对目标定时任务是否存在依赖锁定进行判定的步骤,包括:读取目标定时任务的元数据,从元数据中确定目标定时任务的依赖任务的第一任务标识符以及依赖状态;读取第一任务标识符对应的定时任务的运行状态;若运行状态与所述依赖状态不匹配,则判定目标定时任务存在依赖锁定。

依赖锁定是指,当与目标定时任务存在依赖关系的其他定时任务的运行状态不在依赖状态中时,则目标定时任务存在依赖锁定,例如,假设定时任务a与定时任务b存在依赖关系,定时任务a需要在定时任务b运行结束状态下才可以运行,即定时任务a的依赖任务为定时任务b,依赖状态为非运行中,当主控制端将定时任务a确定为目标定时任务时,主控制端从定时任务a的元数据获取与定时任务a存在依赖关系的定时任务b的标识符,并根据标识符确定定时任务b最后一次运行状态,如果定时任务b最后一次的运行状态为非运行中,则定时任务b的运行状态与依赖状态匹配,确定定时任务a无依赖锁定;如果定时任务b最后一次的运行状态为运行中,则定时任务b的运行状态与依赖状态不匹配,则确定为定时任务a存在依赖锁定。本实施例中,主控制端从目标定时任务的元数据中确定具有关系的定时任务的任务标识符,通过任务标识符获取该定时任务最近一次的运行状态,当该定时任务最近一次的运行状态为运行中,则判定目标定时任务存在依赖锁定;通过对目标定时任务以及与之存在依赖关系的定时任务进行依赖判定,使得具有顺序执行的定时任务实现相互制约,实现定时任务以及定时任务之间运行关联互斥设计,有效解决定时任务的单体性问题。

在一个实施例中,将目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中的步骤,包括:获取目标定时任务的第二任务标识符;对第二任务标识符进行哈希运算,得到第二任务标识符的哈希值;根据哈希值从与目标定时任务的运行方式对应的调度端中确定目标调度端,并将目标任务的元数据发送至目标调度端的任务队列中。

在本实施例中,在主控制端将目标定时任务发送至与目标定时任务运行方式对应的调度端时,根据目标定时任务的任务标识符的哈希值,从与目标定时任务的运行方式对应的多个调度端中,确定与任务标识符哈希值对应的调度端,将目标定时任务的元数据发送至该调度端的任务队列中,实现定时任务调度到不同的调度端中进行处理,实现多服务器多系统进行定时任务的处理工作,避免同一调度端的任务量产生堆积,使得定时任务的处理达到不受单机性能的影响。

在一个实施例中,在读取数据库中各定时任务的运行周期的步骤之前,主控制端可以获取各定时任务的元数据,其中元数据可以包括定时任务的运行周期、基础描述信息、预估运行时长、依赖任务的任务标识符、调度信息以及运行方式。其中,运行周期的定义方式可以采用支持linuxcrontab的表达式;基础描述信息包括定时任务所归属项目等基本信息,并提供api接口对接项目管理业务系统,以支持其他业务系统查询该定时任务的基础信息;调度信息记录运行定时任务的web应用所在执行服务器。通过预先保存定时任务的元数据至数据库中,实现定时任务信息集中统一管理。

在一个实施例中,如图3所示,提供了一种定时任务处理方法,以该方法应用于图1中的调度端为例进行说明,包括以下步骤:

步骤s310:查询任务队列;

步骤s320:当从任务队列中查询到目标定时任务的元数据时,根据元数据调用执行服务器执行目标定时任务;其中,目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定;目标定时任务的元数据是由主控制端根据目标定时任务的运行方式发送至任务队列的。

调度端实时查询任务队列中是否有可执行的目标定时任务的元数据,当主控制端将目标定时任务的元数据发送至调度端的任务队列后,调度端查询目标定时任务的元数据,调度运行该目标定时任务的web应用所在的执行服务器执行该目标定时任务,以实现定时任务的功能。

上述定时任务处理方法,在主控制端根据目标定时任务的运行方式发送至与运行方式对应的任务队列后,通过查询任务队列中的目标定时任务的元数据,根据元数据调用执行服务器执行目标定时任务,实现将定时任务调度到不同的调度端中,由调度端调用执行服务器执行目标定时任务,利用任务队列将定时任务的调度、定时任务的执行进行解耦,实现多服务器多系统间进行定时任务的处理工作,使得定时任务的处理达到不受单机性能的影响,有效避免性能瓶颈的产生以及定时任务执行准确性和频率性的下降,且能够实现按性能需求进行调度端扩缩容。

在一个实施例中,运行方式包括本地运行代码类型;根据元数据调用执行服务器执行目标定时任务的步骤,包括:从元数据中确定第一执行服务器,并从主控制端中拉取与目标定时任务对应的程序代码;将程序代码发送至第一执行服务器,程序代码用于指示第一执行服务器运行程序代码;接收第一执行服务器返回的结果数据。

调度端在查询到任务队列中具有可执行的定时任务的元数据后,从元数据中确定运行定时任务的web应用所在的目标执行服务器,并从主控制端中拉取目标定时任务对应的程序代码,从而将拉取到的程序代码发送到目标执行服务器中,目标执行服务器接收到程序代码以及元数据后,运行程序代码以实现目标定时任务的功能,并将程序代码运行后得到的结果数据传输至调度端中。其中,主控制端可以预先上传定时任务对应的程序代码,以供调度端进行拉取。本实施例为不同类别的定时任务提供处理方案,通过远程部署和运行程序代码,以实现定时任务的功能,有效提高定时任务的处理效率,避免定时任务的堆积。

在一个实施例中,运行方式包括调用接口运行类型;根据元数据调用执行服务器执行目标定时任务的步骤,包括:从元数据中确定第二执行服务器,触发第二执行服务器的调用接口;接收第二执行服务器通过调用接口返回的结果数据。

本实施例中,调度端在询问到任务队列中具有可执行的定时任务的元数据后,从元数据中确定运行定时任务的web应用所在的执行服务器,通过调用接口触发执行服务器运行目标定时任务,以实现目标定时任务的功能,在执行服务器运行完毕后通过调用接口返回结果数据,调度端通过调用接口接收结果数据。

在一个实施例中,如图4所示,提供了一种定时任务处理方法,该方法以主控制端以及调度端交互为例进行说明,包括以下步骤:

步骤s410:主控制端读取数据库中各定时任务的运行周期,根据运行周期从各定时任务中确定目标定时任务;

步骤s420:主控制端将目标定时任务的预估运行时长与预设时长指标值进行对比,并对目标定时任务是否存在依赖锁定进行判定;

步骤s430:当目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定时,主控制端确定目标定时任务的运行方式;

步骤s440:主控制端将目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中;

步骤s450:调度端查询任务队列,当从任务队列中查询到目标定时任务的元数据时,调度端根据元数据调用执行服务器执行目标定时任务。

上述定时任务调度方法中,通过读取数据库中各定时任务的运行周期,确定当前的目标定时任务,当目标定时任务的预估运行时长小于预设时长指标值且不存在依赖锁定时,将目标定时任务的元数据发送至与目标定时任务的运行方式对应的调度端的任务队列中,实现将定时任务调度到不同的调度端中,由调度端调用执行服务器执行目标定时任务,利用任务队列将定时任务的调度、定时任务的执行进行解耦,实现多服务器多系统间进行定时任务的处理工作,使得定时任务的处理不受单机性能的影响,有效避免性能瓶颈的产生以及定时任务执行准确性和频率性的下降。同时,通过将目标定时任务的预估运行时长与预设时长指标值进行对比以及对目标定时任务是否存在依赖锁定进行判定,有效解决定时任务运行前后拥堵问题,并且可以实现不同定时任务间运行关联性互斥设计,解决定时任务单体性问题。

在一个实施例中,运行方式包括本地运行代码类型;调度端根据元数据调用执行服务器执行目标定时任务的步骤,包括:调度端从元数据中确定第一执行服务器,并从主控制端中拉取与目标定时任务对应的程序代码;调度端将程序代码发送至第一执行服务器,程序代码用于指示第一执行服务器运行程序代码;调度端接收第一执行服务器返回的结果数据。

本实施例中,调度端在查询到任务队列中具有可执行的定时任务的元数据后,从元数据中确定运行定时任务的web应用所在的执行服务器,并从主控制端中拉取目标定时任务对应的程序代码,从而将拉取到的程序代码发送到执行服务器中,执行服务器接收到程序代码以及元数据后,运行程序代码以实现目标定时任务的功能,并将程序代码运行后得到的结果数据传输至调度端中。其中,主控制端可以预先上传定时任务对应的程序代码,以供调度端进行拉取。

应该理解的是,虽然图2至4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图5所示,提供了一种定时任务调度装置,本实施例中以主控制端一侧为例进行说明,该定时任务调度装置包括:目标定时任务获取模块510、运行条件判断模块520、运行方式确定模块530和定时任务发送模块540,其中:

目标定时任务获取模块510,用于读取数据库中各定时任务的运行周期,根据运行周期从各定时任务中确定目标定时任务;

运行条件判断模块520,用于将目标定时任务的预估运行时长与预设时长指标值进行对比,并对目标定时任务是否存在依赖锁定进行判定;

运行方式确定模块530,用于在目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定时,确定目标定时任务的运行方式;

定时任务发送模块540,用于将目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中;其中,目标定时任务的元数据用于指示调度端根据元数据调用执行服务器执行目标定时任务。

在一个实施例中,运行条件判断模块520,用于读取目标定时任务的元数据,从元数据中确定目标定时任务的依赖任务的第一任务标识符以及依赖状态;读取第一任务标识符对应的定时任务的运行状态;在运行状态与所述依赖状态不匹配时,则判定目标定时任务存在依赖锁定。

在一个实施例中,定时任务发送模块540,用于获取目标定时任务的第二任务标识符;对第二任务标识符进行哈希运算,得到第二任务标识符的哈希值;根据哈希值从与目标定时任务的运行方式对应的调度端中确定目标调度端,并将目标任务的元数据发送至目标调度端的任务队列中。

在一个实施例中,如图6所示,提供了一种定时任务处理装置,本实施例中以调度端一侧为例进行说明,该定时任务调度装置包括:任务队列查询模块610和定时任务执行模块620,其中:

任务队列查询模块610,用于查询任务队列;

定时任务执行模块620,用于在任务队列中查询到目标定时任务的元数据时,根据元数据调用执行服务器执行目标定时任务;其中,目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定;目标定时任务的元数据是由主控制端根据目标定时任务的运行方式发送至任务队列的。

在一个实施例中,运行方式包括本地运行代码类型;定时任务执行模块620,用于从元数据中确定第一执行服务器,并从主控制端中拉取与目标定时任务对应的程序代码;将程序代码发送至第一执行服务器,程序代码用于指示第一执行服务器运行程序代码;接收第一执行服务器返回的结果数据。

在一个实施例中,运行方式包括调用接口运行类型;定时任务执行模块620,用于从元数据中确定第二执行服务器,触发第二执行服务器的调用接口;接收第二执行服务器通过调用接口返回的结果数据。

在一个实施例中,如图7所示,提供了一种定时任务处理装置,本实施例中以主控制端与调度端交互为例进行说明,该定时任务处理装置包括:目标定时任务获取模块510、运行条件判断模块520、运行方式确定模块530、定时任务发送模块540、任务队列查询模块610和定时任务执行模块620,其中:

目标定时任务获取模块510,用于读取数据库中各定时任务的运行周期,根据运行周期从各定时任务中确定目标定时任务;

目标定时任务获取模块510,用于读取数据库中各定时任务的运行周期,根据运行周期从各定时任务中确定目标定时任务;

运行条件判断模块520,用于将目标定时任务的预估运行时长与预设时长指标值进行对比,并对目标定时任务是否存在依赖锁定进行判定;

运行方式确定模块530,用于在目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定时,确定目标定时任务的运行方式;

定时任务发送模块540,用于将目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中;

任务队列查询模块610,用于查询任务队列;

定时任务执行模块620,用于在任务队列中查询到目标定时任务的元数据时,根据元数据调用执行服务器执行目标定时任务。

关于定时任务调度装置以及定时任务处理装置的具体限定可以参见上文中对于定时任务调度方法以及定时任务处理方法的限定,在此不再赘述。上述定时任务调度装置或定时任务处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储定时任务的元数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种定时任务调度方法或定时任务处理方法。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

读取数据库中各定时任务的运行周期,根据运行周期从各定时任务中确定目标定时任务;

将目标定时任务的预估运行时长与预设时长指标值进行对比,并对目标定时任务是否存在依赖锁定进行判定;

当目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定时,确定目标定时任务的运行方式;

将目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中;其中,目标定时任务的元数据用于指示调度端根据元数据调用执行服务器执行目标定时任务。

在一个实施例中,处理器执行计算机程序实现对目标定时任务是否存在依赖锁定进行判定的步骤时,具体实现以下步骤:读取目标定时任务的元数据,从元数据中确定目标定时任务的依赖任务的第一任务标识符以及依赖状态;读取第一任务标识符对应的定时任务的运行状态;若运行状态与所述依赖状态不匹配,则判定目标定时任务存在依赖锁定。

在一个实施例中,处理器执行计算机程序时还实现将目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中的步骤时,具体实现以下步骤:获取目标定时任务的第二任务标识符;对第二任务标识符进行哈希运算,得到第二任务标识符的哈希值;根据哈希值从与目标定时任务的运行方式对应的调度端中确定目标调度端,并将目标任务的元数据发送至目标调度端的任务队列中。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

查询任务队列;

当从任务队列中查询到目标定时任务的元数据时,根据元数据调用执行服务器执行目标定时任务;其中,目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定;目标定时任务的元数据是由主控制端根据目标定时任务的运行方式发送至任务队列的。

在一个实施例中,运行方式包括本地运行代码类型;处理器执行计算机程序实现根据元数据调用执行服务器执行目标定时任务的步骤时,具体实现以下步骤:从元数据中确定第一执行服务器,并从主控制端中拉取与目标定时任务对应的程序代码;将程序代码发送至第一执行服务器,程序代码用于指示第一执行服务器运行程序代码;接收第一执行服务器返回的结果数据。

在一个实施例中,运行方式包括调用接口运行类型;处理器执行计算机程序实现根据元数据调用执行服务器执行目标定时任务的步骤时,具体实现以下步骤:从元数据中确定第二执行服务器,触发第二执行服务器的调用接口;接收第二执行服务器通过调用接口返回的结果数据。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

读取数据库中各定时任务的运行周期,根据运行周期从各定时任务中确定目标定时任务;

将目标定时任务的预估运行时长与预设时长指标值进行对比,并对目标定时任务是否存在依赖锁定进行判定;

当目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定时,确定目标定时任务的运行方式;

将目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中;其中,目标定时任务的元数据用于指示调度端根据元数据调用执行服务器执行目标定时任务。

在一个实施例中,计算机程序被处理器执行实现对目标定时任务是否存在依赖锁定进行判定的步骤时,具体实现以下步骤:读取目标定时任务的元数据,从元数据中确定目标定时任务的依赖任务的第一任务标识符以及依赖状态;读取第一任务标识符对应的定时任务的运行状态;若运行状态与所述依赖状态不匹配,则判定目标定时任务存在依赖锁定。

在一个实施例中,计算机程序被处理器执行实现将目标定时任务的元数据发送至与运行方式对应的调度端的任务队列中的步骤时,具体实现以下步骤:获取目标定时任务的第二任务标识符;对第二任务标识符进行哈希运算,得到第二任务标识符的哈希值;根据哈希值从与目标定时任务的运行方式对应的调度端中确定目标调度端,并将目标任务的元数据发送至目标调度端的任务队列中。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

查询任务队列;

当从任务队列中查询到目标定时任务的元数据时,根据元数据调用执行服务器执行目标定时任务;其中,目标定时任务的预估运行时长小于预设时长指标值,且无依赖锁定;目标定时任务的元数据是由主控制端根据目标定时任务的运行方式发送至任务队列的。

在一个实施例中,运行方式包括本地运行代码类型;计算机程序被处理器执行实现根据元数据调用执行服务器执行目标定时任务的步骤时,具体以下步骤:从元数据中确定第一执行服务器,并从主控制端中拉取与目标定时任务对应的程序代码;将程序代码发送至第一执行服务器,程序代码用于指示第一执行服务器运行程序代码;接收第一执行服务器返回的结果数据。

在一个实施例中,运行方式包括调用接口运行类型;计算机程序被处理器执行实现根据元数据调用执行服务器执行目标定时任务的步骤时,具体实现以下步骤:从元数据中确定第二执行服务器,触发第二执行服务器的调用接口;接收第二执行服务器通过调用接口返回的结果数据。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

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

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

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