掌桥专利:专业的专利平台
掌桥专利
首页

定时任务处理方法及相关设备

文献发布时间:2023-06-19 10:05:17


定时任务处理方法及相关设备

技术领域

本申请涉及电子技术领域,尤其涉及一种定时任务处理方法及相关设备。

背景技术

在互联网的企业中,各WEB应用系统中执行相关具有规律性的操作,在行业中这种具有规律性、周期性的操作定义为定时任务。随着应用业务的不断增多,定时任务的数量也不断增多,而在传统定时任务处理中,定时任务是单个的处理,会降低处理定时任务的效率。

发明内容

本申请实施例提供一种定时任务处理方法及相关设备,有利于提升处理定时任务的效率。

第一方面,本申请实施例提供一种定时任务处理方法,应用于电子设备,所述方法包括:

触发第一获取指令,所述第一获取指令用于指示从第一数据库中获取任务配置表;

基于所述任务配置表确定N个定时任务集,所述N为正整数;

基于所述N个定时任务集建立触发时刻表,以及将所述N个定时任务集存储在第二数据库中,所述触发时刻表包括N个触发时刻,所述N个定时任务集与所述N个触发时刻一一对应;

确定所述触发时刻表中最早的触发时刻为第一触发时刻,以及在所述第一触发时刻触发第二获取指令,所述第二获取指令用于指示获取所述第一触发时刻对应的目标定时任务集,所述触发时刻表中的触发时刻均晚于所述第一获取指令的触发时刻;

基于所述目标定时任务集和预设线程配置表,确定处理所述目标定时任务集的目标线程;

采用所述目标线程对所述目标定时任务集进行处理;在所述触发时刻表中删除所述第一触发时刻,直至所述触发时刻表中的触发时刻均被定义为第一触发时刻。

第二方面,本申请实施例提供一种定时任务处理装置,该装置包括:

第一触发单元,用于触发第一获取指令,所述第一获取指令用于指示从第一数据库中获取任务配置表;

第一确定单元,用于基于所述任务配置表确定N个定时任务集所述N为正整数;

建立单元,用于基于所述N个定时任务集建立触发时刻表,以及将所述N个定时任务集存储在第二数据库中,所述触发时刻表包括N个触发时刻,所述N个定时任务集与所述N个触发时刻一一对应;

第二触发单元,用于确定所述触发时刻表中最早的触发时刻为第一触发时刻,以及在所述第一触发时刻触发第二获取指令,所述第二获取指令用于指示获取所述第一触发时刻对应的目标定时任务集,所述触发时刻表中的触发时刻均晚于所述第一获取指令的触发时刻;

第二确定单元,用于基于所述目标定时任务集和预设线程配置表,确定处理所述目标定时任务集的目标线程;

处理单元,用于采用所述目标线程对所述目标定时任务集进行处理;在所述触发时刻表中删除所述第一触发时刻,直至所述触发时刻表中的触发时刻均被定义为第一触发时刻。

第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面所述的方法中的步骤的指令。

第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。

第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。

可以看出,在本申请实施例中,电子设备首先触发第一获取指令,第一获取指令用于指示从第一数据库中获取任务配置表;然后基于任务配置表确定N个定时任务集,再然后基于N个定时任务集建立触发时刻表,以及将N个定时任务集存储在第二数据库中,再然后确定触发时刻表中最早的触发时刻为第一触发时刻,以及在第一触发时刻触发第二获取指令,第二获取指令用于指示获取第一触发时刻对应的目标定时任务集,随后基于目标定时任务集和预设线程配置表,确定处理目标定时任务集的目标线程,最后采用目标线程对目标定时任务集进行处理。由于电子设备是通过预设线程配置表,确定处理目标定时任务集中定时任务的目标线程,以及采用目标线程对目标定时任务集进行处理,而不是单个的处理定时任务,因此有利于提升定时任务的处理效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种电子设备的结构示意图;

图2是本申请实施例提供的一种定时任务处理方法的流程示意图;

图3本申请实施例提供的另一种电子设备的结构示意图;

图4本申请实施例提供的一种定时任务处理装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

以下分别进行详细说明。

本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。

电子设备可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(UserEquipment,UE),移动台(Mobile Station,MS),终端设备(terminal device)等等。

如图1所示,图1是本申请实施例提供的一种电子设备的结构示意图。该电子设备包括处理器、存储器、信号处理器、收发器、显示屏、扬声器、通信接口、随机存取存储器(Random Access Memory,RAM)、摄像头、传感器等等。其中,存储器、信号处理器、显示屏、扬声器、RAM、摄像头、传感器、通信接口与处理器连接,收发器与信号处理器连接。

其中,显示屏可以是液晶显示器(Liquid Crystal Display,LCD)、有机或无机发光二极管(Organic Light-Emitting Diode,OLED)、有源矩阵有机发光二极体面板(ActiveMatrix/Organic Light Emitting Diode,AMOLED)等。

其中,该摄像头可以是普通摄像头,可以是红外摄像,也可以是智能摄像头,在此不作限定。该摄像头可以是前置摄像头或后置摄像头,在此不作限定。

其中,传感器包括以下至少一种:光感传感器、陀螺仪、红外接近传感器、指纹传感器、压力传感器等等。其中,光感传感器,也称为环境光传感器,用于检测环境光亮度。光线传感器可以包括光敏元件和模数转换器。其中,光敏元件用于将采集的光信号转换为电信号,模数转换器用于将上述电信号转换为数字信号。可选的,光线传感器还可以包括信号放大器,信号放大器可以将光敏元件转换的电信号进行放大后输出至模数转换器。上述光敏元件可以包括光电二极管、光电三极管、光敏电阻、硅光电池中的至少一种。

其中,处理器是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器内的软体程序和/或模块,以及调用存储在存储器内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。

其中,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器中。

其中,存储器用于存储软体程序和/或模块,处理器通过运行存储在存储器的软件程序和/或模块,从而执行电子设备的各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的软体程序等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

下面对本申请实施例进行详细介绍。

如图2所示,本申请实施例提供的一种定时任务处理方法,应用于上述电子设备,具体包括以下步骤:

步骤201:触发第一获取指令,所述第一获取指令用于指示从第一数据库中获取任务配置表。

其中,在预设时刻定时触发第一获取指令。

其中,任务配置表包括第二天需要执行的定时任务,和定时任务的执行时刻,需要执行的定时任务可以是一个,也可以是多个。

可选地,第一获取指令携带定时任务的标识信息,基于定时任务的标识信息从第一数据库中获取定时任务配置表。

其中,任务配置表包括的定时任务的可以属于不同的任务类型。

其中,任务配置表中的同一个定时任务可能需要执行多次。

其中,获取指令可以占用1个字节,可以是若第一获取指令为1,则从数据库中获取任务配置表,也可以是若第一获取指令为0,则从数据库中获取任务配置表。

步骤202:基于所述任务配置表确定N个定时任务集,所述N为正整数。

其中,定时任务集中的定时任务可能属于同一种任务类型,也可能不属于同一种业务类型。

其中,定时任务集中包括的定时任务的执行时刻可能相同,也可能不同。

其中,第一数据库和第二数据库为不同的数据库。

其中,N个定时任务集包括任务配置表中所有的定时任务。

步骤203:基于所述N个定时任务集建立触发时刻表,以及将所述N个定时任务集存储在第二数据库中,所述触发时刻表包括N个触发时刻,所述N个定时任务集与所述N个触发时刻一一对应。

其中,不同的定时任务集的处理时间不同,不同的触发时刻获取到的定时任务集不同。

其中,触发时刻早于其对应的定时任务集中定时任务的执行时刻。

步骤204:确定所述触发时刻表中最早的触发时刻为第一触发时刻,以及在所述第一触发时刻触发第二获取指令,所述第二获取指令用于指示获取所述第一触发时刻对应的目标定时任务集,所述触发时刻表中的触发时刻均晚于所述第一获取指令的触发时刻。

其中,不同的第一触发时刻获取到的目标定时任务集不同。

其中,对于不同的目标定时任务集处理的方法相同。

步骤205:基于所述目标定时任务集和预设线程配置表,确定处理所述目标定时任务集的目标线程。

其中,预设线程表包括至少一个线程的相关信息。

可选地,线程的相关信息可以是线程处理任务的成功率,也可以是线程处理的任务的平均时间,也可以是线程处理的任务的类型,等等。

步骤206:采用所述目标线程对所述目标定时任务集进行处理。

其中,目标线程可以是一个,也可以是多个。

其中,在目标线程有多个的情况下,与目标定时任务集中的定时任务存在一一对应关系,目标线程用于处理对应的定时任务。

可以看出,在本申请实施例中,电子设备首先触发第一获取指令,第一获取指令用于指示从第一数据库中获取任务配置表;然后基于任务配置表确定N个定时任务集,再然后基于N个定时任务集建立触发时刻表,以及将N个定时任务集存储在第二数据库中,再然后确定触发时刻表中最早的触发时刻为第一触发时刻,以及在第一触发时刻触发第二获取指令,第二获取指令用于指示获取第一触发时刻对应的目标定时任务集,随后基于目标定时任务集和预设线程配置表,确定处理目标定时任务集的目标线程,最后采用目标线程对目标定时任务集进行处理。由于电子设备是通过预设线程配置表,确定处理目标定时任务集中定时任务的目标线程,以及采用目标线程对目标定时任务集进行处理,而不是单个的处理定时任务,因此有利于提升定时任务的处理效率。

在本申请的一实现方式中,所述任务配置表包括S个第一待执行定时任务和T个第一任务执行时刻,每个所述第一待执行定时任务对应至少一个所述第一任务执行时刻;

所述基于所述任务配置表确定N个定时任务集,包括:

在所述T个第一任务执行时刻中确定最早第一任务执行时刻和最晚第一任务执行时刻;

基于所述最早第一任务执行时刻、所述最晚第一任务执行时刻以及第一预设时长,确定N个第一时段,所述第一时段的时长小于或等于所述第一预设时长;

基于所述N个第一时段、所述S个第一待执行定时任务以及所述T个第一任务执行时刻,确定所述N个定时任务集,所述N个第一时段和所述N个定时任务集一一对应,每个所述定时任务集包括的第一待执行定时任务的第一任务执行时刻位于同一时段内。

其中,S个第一待执行定时任务均为第二天需要执行的定时任务。

其中,第一任务执行时刻为第一待执行定时任务的执行时刻。

其中,每个第一待执行定时任务可能需要执行一次,也可能需要执行多次。

其中,T个第一任务执行时刻中每个第一任务执行时刻均不同。

其中,可以是不同的第一待执行定时任务对应同一个第一任务执行时刻,也可以是不同的第一待执行定时任务对应不同的第一任务执行时刻。

其中,第一预设时长可以是30秒,也可以是2分钟,也可以是30分钟,等等。

其中,若最早第一任务执行时刻与最晚第一任务执行时刻之间的时差与N个第一预设时长之和相等,则N个第一时段的时长均等于第一预设时长,若最早第一任务执行时刻与最晚第一任务执行时刻之间的时差,大于N个第一预设时长之和,则最晚第一任务执行时刻所在的第一时段的时长小于第一预设时长。其中,定时任务集可能包括同一个第一待执行定时任务的至少一个第一任务执行时刻。

其中,同一个第一待执行定时任务可以属于至少一个定时任务集。

举例来说,任务配置表包括4个任务(A、B、C以及D)以及每个任务的执行时刻,其中执行任务A的时刻包括08:20:30、08:30:40以及10:45:20,执行任务B的时刻包括10:20:30、11:30:40以及11:45:20,执行任务C的时刻包括08:22:30、09:45:40以及10:45:20,执行任务D的时刻包括09:21:30、08:32:40以及11:45:22。假设第一预设时长为1小时,由于最早执行时刻为08:20:30,最晚执行时刻为11:45:22,则可确定4个时段(时段1、时段2、时段3以及时段4),其中,时段1为08:20:30-09:20:30、时段2为09:20:31-10:20:31、时段3为10:20:32-11:20:32以及时段4为11:20:33-12:20:33。因此可确定时段1对应的定时任务集为(任务A、任务C、任务D),时段2对应的定时任务集为(任务B、任务C以及任务D),时段3对应的定时任务集为(任务A、任务C),时段4对应的定时任务集为(任务B、任务D)。

可以看出,在本申请实施例中,基于任务配置表确定N个定时任务集,有利于在不同的时段执行不同的定时任务集中的多个定时任务,有利于提升定时任务的处理效率。

在本申请的一实现方式中,所述预设线程配置表包括至少一个线程和每个所述线程执行任务的成功率,所述任务配置表还包括每个第一待执行定时任务的重要程度,所述目标定时任务集包括至少一个第一待执行定时任务,所述目标定时任务集包括的第一待执行定时任务的数量小于或等于所述S;

所述基于所述目标定时任务集和预设线程配置表,确定处理所述目标定时任务集的目标线程,包括:

按照成功率从大到小的排序原则对所述至少一个线程进行排序,得到线程子集;

基于重要程度从大到小的排序原则对所述目标定时任务集包括的至少一个第一待执行定时任务进行排序,得到第一待执行定时任务子集;

基于第一分配原则将所述第一待执行定时任务子集中的第一待执行定时任务对应的分配给所述线程子集中的线程进行处理,以及确定处理第一待执行定时任务的线程为所述目标线程,所述第一分配原则为处理第一待执行定时任务的线程在所述线程子集中的位置与第一待执行定时任务在所述第一待执行定时任务子集中的位置相同。

其中,重要程度是预设的,第一待执行定时任务的重要程度可能相同,也可能不同,重要程度越大代表第一待执行定时任务越重要。

其中,线程执行任务的成功率为线程成功的任务的数量与任务线程已执行的任务的数量之比,因此线程执行任务的成功率随着线程执行任务的增加而变化。

可选地,若线程子集包括的线程的数量小于第一待执行定时任务子集中第一待执行定时任务的数量,则创建新的线程对未分配线程的第一待执行定时任务进行处理。

其中,若线程执行的定时任务可能有多个执行时刻,则在多个时刻执行该定时任务。

举例来说,若线程1处理第一待执行定时任务A,A有3个第一任务执行时刻(a、b以及c),则线程1分别在第一任务执行时刻a、第一任务执行时刻b以及第一任务执行时刻c处理A。

举例来说,预设线程配置表中包括5个线程(#1、#2、#3、#4以及#5),其中#1的成功率为90%、#2的成功率为95%、#3的成功率为78%、#4的成功率为75%以及#5的成功率为70%,目标定时任务集包括3个第一待执行定时任务(任务A、任务B以及任务C),其中,任务A的重要程度为3级,任务B的重要程度为1级以及C的重要程度为2级。则基于成功率的由高到低对线程进行排序后,得到的线程子集为(#2、#1、#3、#4以及#5),基于重要程度的高到低对定时任务进行排序后,得到的第一待执行定时任务子集为(任务A、任务C以及任务B),则采用线程#2处理任务A,线程31处理任务C以及线程#3处理任务B。

可以看出,在本申请实施例中,基于线程的成功率和目标定时任务集中第一待执行定时任务的重要程度,确定执行第一待执行定时任务的线程,有利于保证重要的第一待处理定时任务能成功得到处理,提升用户体验。

在本申请的一实现方式中,所述任务配置表包括R个第二待执行定时任务和P个任务类型,每个所述任务类型对应至少一个所述第二待执行定时任务,所述R和所述P均为正整数,所述R大于或等于所述P;

所述基于所述任务配置表确定N个定时任务集,包括:

基于所述P个任务类型和所述R个第二待执行定时任务,确定所述P个待处理定时任务集,所述P个任务类型和所述P个待处理定时任务集一一对应,每个所述待处理定时任务集中第二待执行定时任务的任务类型相同,每个所述待处理定时任务集包括至少一个所述第二待执行定时任务;

基于所述任务配置表和所述P个待处理定时任务集,确定所述N个定时任务集。

其中,任务类型包括但不限于以下几种:支付任务、借贷任务以及理财任务,等等。

其中,第二待执行定时任务为第二天需要处理的全部定时任务。

其中,P个待处理定时任务集包括R个第二待执行定时任务。

其中,可能每个第二待执行定时任务的任务类型各不相同,也可能至少一个第二待执行定时任务的任务类型相同。

举例来说,若任务类型为支付任务,则第二待执行定时任务可以是微信支付、银行卡支付、支付宝中余额支付、支付宝中余额宝支付,等等。

举例来说,若任务配置表包括5个第二待处理定时任务(A、B、C、D以及E),其中A属于任务类型1、B属于任务类型1、C属于任务类型2、D属于任务类型3以及E属于任务类型2,则可确定3个待处理定时任务集(J1、J2以及J3),其中J1包括A和B,J2包括C和E,J3包括D。

可以看出,在本申请实施例中,基于第二待执行定时任务的任务类型对第二待执行定时任务进行划分,有利于后续基于任务类型对第二待定时任务进行处理。

在本申请的一实现方式中,所述任务配置表还包括S个第二任务执行时刻,所述第二任务执行时刻为所述待处理定时任务集中第二待执行定时任务的执行时刻,每个所述待处理定时任务集中每个第二待执行定时任务对应至少一个所述第二任务执行时刻,所述S为正整数,所述S大于或等于所述R;

所述基于所述任务配置表和所述P个待处理定时任务集,确定所述N个定时任务集,包括:

基于所述S个第二任务执行时刻、所述P个待处理定时任务集、第二预设时长以及第三预设时长,确定N个第二时段,每个所述第二时段对应包括至少一个所述第二任务执行时刻,每个所述第二时段内的第二任务执行时刻的时间差大于小于所述第二预设时长,以及每个所述第二时段内的第二任务执行时刻的时间差小于所述第三预设时长,每个所述第二时段内的第二任务执行时刻对应的第二待执行定时任务属于同一个待处理定时任务集,所述N大于或等于所述P;

基于所述N个第二时段确定所述N个定时任务集,所述N个第二时段和所述N个定时任务集一一对应,每个所述定时任务集包括的第二待执行定时任务的第二任务执行时刻属于同一时段。

其中,第二预设时长可以是3分钟,也可以是10分钟,也可以是其他时长。

其中,第二预设时长小于第三预设时长,第三预设时长可以是4分钟、6分钟、15分钟,等等。

其中,一个待处理定时任务集对应至少一个第二时段。

其中,可以是不同的第二待执行定时任务对应不同的第二任务执行时刻,也可以是多个第二待执行定时任务对应一个第二任务执行时刻。

其中,第二任务执行时刻为执行第二待执行定时任务的时刻。

举例来说,待处理定时任务集为#1,其中,#1包括任务A1、任务A2以及任务A3,任务A1的第二任务执行时刻为08:20:30、08:30:40以及10:45:20、执行任务A2的时刻包括10:20:30、11:30:40以及11:45:20、执行任务A3的时刻包括08:22:50、09:48:40以及10:45:20。假设第二预设时长为2分钟,第三预设时长为20分钟,则可确定时差大于或等于2分钟且小于20分钟的时刻有A1:08:20:30、08:30:40,A3:08:22:50,则对应的定时任务集1包括(任务A1和任务A3);A1:10:45:20,A3:10:45:20,则定时任务集2包括(任务A1、任务A3、任务C);A2:11:30:40、11:45:20,因此定时任务集3包括任务A2;A3:09:45:40,因此定时任务集4包括任务A3。

可以看出,在本申请实施例中,一次性获取在某一时段内的定时任务,有利于降低定时任务获取的复杂度。

在本申请的一实现方式中,所述预设线程配置表包括至少一个线程,所述线程与任务类型绑定;

所述确定处理所述目标定时任务集的目标线程,包括:

基于所述定时任务集对应的任务类型,在所述至少一个线程中确定所述目标线程。

其中,可以是多个线程和同一个任务类型存在绑定关系,也可以是线程与任务类型存在一一对应关系。

其中,若第二待执行定时任务对应多个第二任务执行时刻,则第二待执行定时任务对应的线程在该多个第二任务执行时刻,对第二待执行定时任务进行处理。

举例来说,若目标定时任务集包括(任务A、任务B以及任务C),其中,任务A的任务类型为类型1、任务B的类型为类型2任务C的类型为类型C。假设类型1与线程1绑定,类型2与线程2绑定以及类型3与线程3绑定,则采用线程1处理任务A,线程2处理任务B以及线程3处理任务C。

可以看出,在本申请实施例中,不同的线程处理不同的定时任务,有利于提升定时任务处理的成功率。

在本申请的一实现方式中,所述基于所述N个定时任务集建立触发时刻表,包括:

确定每个所述定时任务集对应的时段的起始时刻;

基于每个起始时刻和第四预设时长确定每个触发时刻,得到N个触发时刻;

基于所述N个触发时刻建立所述触发时刻表。

其中,每个触发时刻早于每个起始时刻。

其中,第四预设时长可以是20s,也可以是34s,也可以是其他时长,等等。

其中,触发时刻早于其对应的初始时刻的时长为第四预设时长。

其中,触发时刻表包括N个触发时刻,N个触发时刻各不相同。

可以看出,在本申请实施例中,基于定时任务集对应的是短的起始时刻和预设时长确定触发时刻,有利于避免设备对定时任务集的执行时刻进行监听,降低终端设备的复杂度。

在一种可能的实现方式中,所述采用目标线程对目标定时任务集进行处理之后,所述方法还包括:

将所述目标线程和所述处理结果关联的存储在所述第三数据库中。

可以看出,在本申请实施例中,有利于基于线程对处理结果进行提取。

与上述图2所示的实施例一致的,请参阅图3,图3是本申请实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令:

触发第一获取指令,所述第一获取指令用于指示从第一数据库中获取任务配置表;

基于所述任务配置表确定N个定时任务集,所述N为正整数;

基于所述N个定时任务集建立触发时刻表,以及将所述N个定时任务集存储在第二数据库中,所述触发时刻表包括N个触发时刻,所述N个定时任务集与所述N个触发时刻一一对应;

确定所述触发时刻表中最早的触发时刻为第一触发时刻,以及在所述第一触发时刻触发第二获取指令,所述第二获取指令用于指示获取所述第一触发时刻对应的目标定时任务集,所述触发时刻表中的触发时刻均晚于所述第一获取指令的触发时刻;

基于所述目标定时任务集和预设线程配置表,确定处理所述目标定时任务集的目标线程;

采用所述目标线程对所述目标定时任务集进行处理;在所述触发时刻表中删除所述第一触发时刻,直至所述触发时刻表中的触发时刻均被定义为第一触发时刻。

在本申请的一实现方式中,所述任务配置表包括S个第一待执行定时任务和T个第一任务执行时刻,每个所述第一待执行定时任务对应至少一个所述第一任务执行时刻;

在基于所述任务配置表确定N个定时任务集方面,所述程序包括还用于执行以下步骤的指令:

在所述T个第一任务执行时刻中确定最早第一任务执行时刻和最晚第一任务执行时刻;

基于所述最早第一任务执行时刻、所述最晚第一任务执行时刻以及第一预设时长,确定N个第一时段,每个所述第一时段的时长均小于或等于所述第一预设时长;

基于所述N个第一时段、所述S个第一待执行定时任务以及所述T个第一任务执行时刻,确定所述N个定时任务集,所述N个第一时段和所述N个定时任务集一一对应,每个所述定时任务集包括的第一待执行定时任务的第一任务执行时刻位于同一时段内。

在本申请的一实现方式中,所述预设线程配置表包括至少一个线程和每个所述线程执行任务的成功率,所述任务配置表还包括每个第一待执行定时任务的重要程度,所述目标定时任务集包括至少一个第一待执行定时任务,所述目标定时任务集包括的第一待执行定时任务的数量小于或等于所述S;

在基于所述目标定时任务集和预设线程配置表,确定处理所述目标定时任务集的目标线程方面,上述程序包括用于执行以下步骤指令:

按照成功率从大到小的排序原则对所述至少一个线程进行排序,得到线程子集;

基于重要程度从大到小的排序原则对所述目标定时任务集包括的至少一个第一待执行定时任务进行排序,得到第一待执行定时任务子集;

基于第一分配原则将所述第一待执行定时任务子集中的第一待执行定时任务分配给所述线程子集中的线程进行处理,以及确定处理第一待执行定时任务的线程为所述目标线程,所述第一分配原则为处理第一待执行定时任务的线程在所述线程子集中的位置与第一待执行定时任务在所述第一待执行定时任务子集中的位置相同。

在本申请的一实现方式中,所述任务配置表包括R个第二待执行定时任务和P个任务类型,每个所述任务类型对应至少一个所述第二待执行定时任务,所述R和所述P均为正整数,所述R大于或等于所述P;

在基于所述任务配置表确定N个定时任务集方面,上述程序包括用于执行以下步骤指令:

基于所述P个任务类型和所述R个第二待执行定时任务,确定所述P个待处理定时任务集,所述P个任务类型和所述P个待处理定时任务集一一对应,每个所述待处理定时任务集中第二待执行定时任务的任务类型相同,每个所述待处理定时任务集包括至少一个所述第二待执行定时任务;

基于所述任务配置表和所述P个待处理定时任务集,确定所述N个定时任务集。

在本申请的一实现方式中,所述任务配置表还包括S个第二任务执行时刻,所述第二任务执行时刻为所述待处理定时任务集中第二待执行定时任务的执行时刻,每个所述待处理定时任务集中每个第二待执行定时任务对应至少一个所述第二任务执行时刻,所述S为正整数,所述S大于或等于所述R;

在基于所述任务配置表和所述P个待处理定时任务集,确定所述N个定时任务集方面,上述程序包括用于执行以下步骤指令:

基于所述S个第二任务执行时刻、所述P个待处理定时任务集、第二预设时长以及第三预设时长,确定N个第二时段,每个所述第二时段包括至少一个所述第二任务执行时刻,每个所述第二时段内的第二任务执行时刻的时间差大于或等于所述第二预设时长,以及每个所述第二时段内的第二任务执行时刻的时间差小于所述第三预设时长,每个所述第二时段内的第二任务执行时刻对应的第二待执行定时任务属于同一个待处理定时任务集,所述N大于或等于所述P;

基于所述N个第二时段确定所述N个定时任务集,所述N个第二时段和所述N个定时任务集一一对应,所述每个所述定时任务集包括的第二待执行定时任务的第二任务执行时刻属于同一时段。

在本申请的一实现方式中,所述预设线程配置表包括至少一个线程,所述线程与任务类型存在绑定关系;

在确定处理所述目标定时任务集的目标线程方面,上述程序包括用于执行以下步骤指令:

基于所述定时任务集对应的任务类型,在所述至少一个线程中确定所述目标线程。

在本申请的一实现方式中,在基于所述N个定时任务集建立触发时刻表方面,上述程序包括用于执行以下步骤指令:

确定每个所述定时任务集对应的时段的起始时刻;

基于每个起始时刻和第四预设时长确定每个触发时刻,得到N个触发时刻;

基于所述N个触发时刻建立所述触发时刻表。

需要说明的是,本实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再叙述。

请参阅图4,图4是本申请实施例提供的一种定时任务处理装置,应用于电子设备,该装置包括:

第一触发单元401,用于触发第一获取指令,所述第一获取指令用于指示从第一数据库中获取任务配置表;

第一确定单元402,用于基于所述任务配置表确定N个定时任务集,所述N为正整数;

建立单元403,用于基于所述N个定时任务集建立触发时刻表,以及将所述N个定时任务集存储在第二数据库中,所述触发时刻表包括N个触发时刻,所述N个定时任务集与所述N个触发时刻一一对应;

第二触发单元404,用于确定所述触发时刻表中最早的触发时刻为第一触发时刻,以及在所述第一触发时刻触发第二获取指令,所述第二获取指令用于指示获取所述第一触发时刻对应的目标定时任务集,所述触发时刻表中的触发时刻均晚于所述第一获取指令的触发时刻;

第二确定单元405,用于基于所述目标定时任务集和预设线程配置表,确定处理所述目标定时任务集的目标线程;

处理单元406,用于采用所述目标线程对所述目标定时任务集进行处理;在所述触发时刻表中删除所述第一触发时刻,直至所述触发时刻表中的触发时刻均被定义为第一触发时刻。

在本申请的一实现方式中,所述任务配置表包括S个第一待执行定时任务和T个第一任务执行时刻,每个所述第一待执行定时任务对应至少一个所述第一任务执行时刻;

在基于所述任务配置表确定N个定时任务集方面,所述第一确定单元402包括还用于执行以下步骤的指令:

在所述T个第一任务执行时刻中确定最早第一任务执行时刻和最晚第一任务执行时刻;

基于所述最早第一任务执行时刻、所述最晚第一任务执行时刻以及第一预设时长,确定N个第一时段,每个所述第一时段的时长均小于或等于所述第一预设时长;基于所述N个第一时段、所述S个第一待执行定时任务以及所述T个第一任务执行时刻,确定所述N个定时任务集,所述N个第一时段和所述N个定时任务集一一对应,每个所述定时任务集包括的第一待执行定时任务的第一任务执行时刻位于同一时段内。

在本申请的一实现方式中,所述预设线程配置表包括至少一个线程和每个所述线程执行任务的成功率,所述任务配置表还包括每个第一待执行定时任务的重要程度,所述目标定时任务集包括至少一个第一待执行定时任务,所述目标定时任务集包括的第一待执行定时任务的数量小于或等于所述S;

在确定处理所述目标定时任务集的目标线程方面,上述第二确定单元404包括用于执行以下步骤指令:

按照成功率从大到小的排序原则对所述至少一个线程进行排序,得到线程子集;

基于重要程度从大到小的排序原则对所述目标定时任务集包括的至少一个第一待执行定时任务进行排序,得到第一待执行定时任务子集;

基于第一分配原则将所述第一待执行定时任务子集中的第一待执行定时任务对应的给所述线程子集中的线程进行处理,以及确定处理第一待执行定时任务的线程为所述目标线程,所述第一分配原则为处理第一待执行定时任务的线程在所述线程子集中的位置与第一待执行定时任务在所述第一待执行定时任务子集中的位置相同。

在本申请的一实现方式中,所述任务配置表包括R个第二待执行定时任务和P个任务类型,每个所述任务类型对应至少一个所述第二待执行定时任务,所述R和所述P均为正整数,所述R大于或等于所述P;

在基于所述任务配置表确定N个定时任务集方面,上述第一确定单元402包括用于执行以下步骤指令:

基于所述P个任务类型和所述R个第二待执行定时任务,确定所述P个待处理定时任务集,所述P个任务类型和所述P个待处理定时任务集一一对应,每个所述待处理定时任务集中第二待执行定时任务的任务类型相同,每个所述待处理定时任务集包括至少一个所述第二待执行定时任务;

基于所述任务配置表和所述P个待处理定时任务集,确定所述N个定时任务集。

在本申请的一实现方式中,所述任务配置表还包括S个第二任务执行时刻,所述第二任务执行时刻为所述待处理定时任务集中第二待执行定时任务的执行时刻,每个所述待处理定时任务集中每个第二待执行定时任务对应至少一个所述第二任务执行时刻,所述S为正整数,所述S大于或等于所述R;

在基于所述任务配置表和所述P个待处理定时任务集,确定所述N个定时任务集方面,上述第一确定单元402包括用于执行以下步骤指令:

基于所述S个第二任务执行时刻、所述P个待处理定时任务集、第二预设时长以及第三预设时长,确定N个第二时段,每个所述第二时段包括至少一个所述第二任务执行时刻,每个所述第二时段内的第二任务执行时刻的时间差大于或等于所述第二预设时长,以及每个所述第二时段内的第二任务执行时刻的时间差小于所述第三预设时长,每个所述第二时段内的第二任务执行时刻对应的第二待执行定时任务属于同一个待处理定时任务集,所述N大于或等于所述P;

基于所述N个第二时段确定所述N个定时任务集,所述N个第二时段和所述N个定时任务集一一对应,所述每个所述定时任务集包括的第二待执行定时任务的第二任务执行时刻属于同一时段。

在本申请的一实现方式中,所述预设线程配置表包括至少一个线程,所述线程与任务类型存在绑定关系;

在确定处理所述目标定时任务集的目标线程方面,上述第二确定单元405包括用于执行以下步骤指令:

基于所述定时任务集对应的任务类型,在所述至少一个线程中确定所述目标线程。

在本申请的一实现方式中,在基于所述N个定时任务集建立触发时刻表方面,上述建立单元403包括用于执行以下步骤指令:

确定每个所述定时任务集对应的时段的起始时刻;

基于每个起始时刻和第四预设时长确定每个触发时刻,得到N个触发时刻;

基于所述N个触发时刻建立所述触发时刻表。

需要说明的是,第一触发单元401、第一确定单元402、建立单元403、第二触发单元404、第二确定单元40以及处理单元406可通过处理器实现。

本申请实施例还提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储用于定时任务处理的计算机程序,其中,所述计算机程序使得计算机执行如上述方法实施例中电子设备所描述的部分或全部步骤。

本申请实施例还提供了一种计算机程序产品,其中,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法中电子设备所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。

本申请实施例所描述的方法或者算法的步骤可以以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read OnlyMemory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于接入网设备、目标网络设备或核心网设备中。当然,处理器和存储介质也可以作为分立组件存在于接入网设备、目标网络设备或核心网设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DigitalSubscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(DigitalVideo Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。

以上所述的具体实施方式,对本申请实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请实施例的具体实施方式而已,并不用于限定本申请实施例的保护范围,凡在本申请实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请实施例的保护范围之内。

相关技术
  • 定时任务处理方法及相关设备
  • 定时任务处理方法及相关装置、系统
技术分类

06120112410325