一种定时任务的处理方法和装置与流程

文档序号:19418083发布日期:2019-12-14 01:08阅读:203来源:国知局
一种定时任务的处理方法和装置与流程

本申请涉及云处理领域,更具体地说,涉及一种定时任务的处理方法和装置。



背景技术:

在微服务(microservicearchitecture)或其它单体架构中,有一些业务功能是不需要实时执行的,例如,通知云主机开关机、创建云主机快照以及云硬盘创建快照等,因此,通常会设置定时任务来实现这些业务功能。

当出现如网络抖动、资源竞争等不可控因素时,定时任务可能会一直执行失败,频繁产生错误日志,使得资源极大的浪费。



技术实现要素:

有鉴于此,本申请提供了一种定时任务的处理方法和装置,用于当定时任务出现某些问题时,及时处理,避免资源浪费。

为了实现上述目的,现提出的方案如下:

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

当预先创建的定时巡检任务被触发时,获得该定时巡检任务的定时任务类型;

依据所述定时任务类型,确定与所述任务类型相匹配的定时任务;

确定所述定时任务中在预定时间段内执行失败的次数超过预定阈值的目标定时任务;

禁用所述目标定时任务。

优选的,还包括:

存储所述目标定时任务的任务信息以及错误信息。

优选的,还包括:

分析所述错误信息生成业务报表;

将所述业务报表发送给业务端。

优选的,所述确定所述定时任务中在预定时间段内执行失败的次数超过预定阈值的目标定时任务包括:

在存储空间中查询预定时间段内每一个定时任务的任务执行结果;

筛选所述任务执行结果中任务执行连续失败次数超过预定阈值的流程实例;

将所述流程实例所对应的定时任务作为目标定时任务。

优选的,所述预先创建的定时巡检任务的创建过程包括:

获得业务方发送的创建任务指令;所述创建任务指令中至少包括定时策略以及定时任务类型;

依据所述定时策略创建用于触发所述定时巡检任务的系统定时器;

依据定时任务类型对调度模板中的相关参数进行赋值;

依据赋值后的调度模板创建用于执行所述定时巡检任务触发的流程实例和用于执行所述流程实例的实例定时器。

本发明另一方面还体统了一种定时任务的处理装置,包括:

调度模块,用于当预先创建的定时巡检任务被触发时,获得该定时巡检任务的定时任务类型;依据所述定时任务类型,确定与所述任务类型相匹配的定时任务;确定所述定时任务中在预定时间段内执行失败的次数超过预定阈值的目标定时任务;

定时任务管理模块,用于禁用所述目标定时任务。

优选的,还包括中间件模块;

所述中间件模块用于接收由所述调度模块发送mq消息,存储所述mq消息并将所述mq消息发送给所述定时任务管理模块,所述mq消息包括所述目标定时任务的任务信息以及错误信息。

优选的,所述定时任务管理模块还用于:

分析所述错误信息生成业务报表;

将所述业务报表发送给业务端。

优选的,所述调度模块具体用于:

在存储空间中查询预定时间段内每一个定时任务的任务执行结果;

筛选所述任务执行结果中任务执行连续失败次数超过预定阈值的流程实例;

将所述流程实例所对应的定时任务作为目标定时任务。

优选的,所述调度模块还用于创建定时巡检任务;

所述定时巡检任务的创建过程包括:

获得业务方发送的定时策略以及定时任务类型;

依据所述定时策略以及定时任务类型对调度模板中的相关参数进行赋值;

依据赋值后的调度模板创建用于执行所述定时巡检任务触发的流程实例和用于触发所述定时巡检任务的定时器。

本申请实施例提供一种定时任务的处理方法和处理装置,所述处理方法当预先创建的定时巡检任务被触发时,获得该定时巡检任务的定时任务类型;依据所述定时任务类型,确定与所述任务类型相匹配的定时任务;确定所述定时任务中在预定时间段内执行失败的次数超过预定阈值的目标定时任务;禁用所述目标定时任务。可以看出,由于本申请实施例中,利用定时巡检任务在定时任务中确定出在预定时间段内执行失败次数超过预定阈值的目标定时任务,及时对目标定时任务禁用,不会频繁产生错误日志,避免了由于执行失败而反复执行所造成的资源浪费。

附图说明

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

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

图2是本发明实施例公开的一种定时任务的处理方法中创建定时巡检任务的流程示意图;

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

具体实施方式

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

本申请实施例提供了一种定时任务的处理方法。可以应用到云计算领域中,用来在例如通知云主机开关机、创建云主机快照以及云硬盘创建快照等定时任务出现问题时,及时处理,减少服务器的资源消耗和整个网络的资源浪费。

可以理解的是,本发明实施例所公开的一种定时任务的处理方法和处理装置可以运行在云服务器中,或者其它云设备中,亦或是执行定时任务的设备中,在此不进行限定。

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

参见图1,图1是本申请实施例提供的一种定时任务的处理方法的流程示意图。

本申请公开的一种定时任务的处理方法,包括:

s101、当预先创建的定时巡检任务被触发时,获得该定时巡检任务的定时任务类型;

本申请实施例中,预先创建有定时巡检任务,该定时巡检任务的触发可以是依据在定时巡检任务创建时所设置的系统定时器来进行触发的。也可以是通过用户手动操作来触发的。

其中,定时巡检任务中包括有定时任务类型。定时任务类型例如创建云主机快照。

本申请实施例中,定时巡检任务可以是由业务方根据需求所创建的。具体创建过程在后面进行详细介绍。

s102、依据所述定时任务类型,确定与所述任务类型相匹配的定时任务;

本申请实施例中,来确定与定时任务类型匹配的定时任务。其中,定时任务可以有多个,例如每一个创建云主机快照的主机地址不同。

s103、确定所述定时任务中在预定时间段内执行失败的次数超过预定阈值的目标定时任务;

本申请实施例中,在定时任务中确定目标定时任务。目标定时任务是指在预定时间段内执行失败次数超过预定阈值的那些定时任务。

其中,预定时间段可以是指已经发生的一段时间内,也可以是当前开始到未来时刻的一段时间内。

可以理解的是,执行失败的次数可以是连续失败的次数,也可以是失败次数累加的次数,根据实际需要进行设置即可,在此不进行限定。

具体的,所述确定所述定时任务中在预定时间段内执行失败的次数超过预定阈值的目标定时任务包括:

在存储空间中查询预定时间段内每一个定时任务的任务执行结果;

筛选所述任务执行结果中任务执行连续失败次数超过预定阈值的流程实例;

将所述流程实例所对应的定时任务作为目标定时任务。

本申请实施例中,定时任务执行完成后会在存储空间中保存相关信息。其中,存储空间可以是中间件的存储空间,例如mq中间件的数据库或者存储在存储系统的存储空间例如elasticsearch检索系统的存储空间中。

因此,本申请实施例中,可以根据存储空间的类型去选择相应的方式去执行。例如数据库可以采用数据库的检测方式,而检索系统则可以调用其api去进行检测。

本申请实施例中,会获得每一个定时任务的任务执行结果,然后筛选出连续失败次数超过预定阈值的流程实例。例如,某云主机快照的具体实例对应的定时任务在2个小时内连续失败超过了3次,则,将该实例对应的定时任务作为目标定时任务。

s104、禁用所述目标定时任务。

本申请实施例中,确定出目标定时任务后,会其进行降级操作,例如禁用该目标定时任务,降低其执行优先级等。以便于不会重复执行,不会产生多余的错误日志以及错误信息等浪费资源的操作。

可以看出,由于本申请实施例中,利用定时巡检任务在定时任务中确定出在预定时间段内执行失败次数超过预定阈值的目标定时任务,及时对目标定时任务禁用,不会频繁产生错误日志,避免了由于执行失败而反复执行所造成的资源浪费。

在上述实施例的基础上,本申请实施例中,还包括:

存储所述目标定时任务的任务信息以及错误信息。

还包括:

分析所述错误信息生成业务报表;

将所述业务报表发送给业务端。

本申请实施例中,还会存储目标定时任务的任务信息以及错误信息。

其中,任务信息可以是定时任务id、名称以及类型或定时策略等,错误信息可以通用的以及常见的错误信息,以错误码的形式表述,可以包括网络抖动异常、被删除等造成的定时任务执行的对象不存在、存储、cpu等资源消耗太大导致容器重启等常见错误信息。当然,还包括未知的一些错误,例如堆栈打印错误的日志。

本发明实施例中,还会分析错误信息,错误信息形成业务报表,将业务报表发送给业务方。当然,还可以是将错误信息发送给业务方。以便于挖掘更多的信息。

其中,业务报表中可以包括有:

1、降级的定时任务数量的折线图。

2、定时任务降级对比图,例如根据降级原因等元素对比。

3、各任务类型降级的任务对比图。

当然还可以包括其它图示。

可以看出,本申请实施例中,还可以存储错误信息以及任务信息,以便于后续进行分析挖掘。

本申请实施例中,会根据业务方需求预先创建定时巡检任务。

本发明实施例中,参见图2,图2是本发明实施例公开的一种定时任务的处理方法中创建定时巡检任务的流程示意图。

本发明实施例中,所述预先创建的定时巡检任务的创建过程包括:

s201、获得业务方发送的创建任务指令;所述创建任务指令中至少包括定时策略以及定时任务类型;

本发明实施例中,或获得业务方所发送的创建任务指令。该创建任务指令用于创建定时巡检任务。

可以理解的是,业务方可以通过例如图形界面发送创建任务指令。例如,输入定时策略以及定时任务类型的创建任务指令。

s202、依据所述定时策略创建用于触发所述定时巡检任务的系统定时器;

s203、依据定时任务类型对调度模板中的相关参数进行赋值;

接收该创建任务指令创建系统级别的系统定时器,用来触发定时巡检任务。

本申请实施例中,创建系统级别的系统定时器,该系统定时器用于触发定时巡检任务。

可以理解的是,当上述步骤s104执行完成时,同时会停止该系统定时器的运行。

本申请实施例中,定时任务类型中还可以包括有定时任务请求地址、请求类型、异步请求等参数。本申请实施例中,调度模板是预先设置的具有若干参数的模板。其中,可以包括有定时任务请求地址、请求参数、异步请求、定时表达式等参数。可以依据定时任务类型设置其中的参数。

赋值后的调度模板可以创建具体的流程实例等,供执行定时巡检任务时所执行。

s204、依据赋值后的调度模板创建用于执行所述定时巡检任务触发的流程实例和用于执行所述流程实例的实例定时器。

本申请实施例中,根据赋值后的调度模板创建定时巡检任务在触发后所执行的流程实例以及实例定时器。

例如,流程实例基于调度的模版来执行。定时器主要用于任务的定时策略。比如创建云主机定时任务,定时策略可以设为每个月末0点执行创建云主机任务。

本申请实施例中,可以依据业务方的需求建立定时巡检任务,可扩展性强。

在实际使用中,以创建云主机快照为例,本申请实施例中可以先创建云主机快照定时巡检任务,当系统定时器触发该任务时,筛选出其流程实例,根据这些流程实例的历史执行情况进行统计,停止超出预定阈值的云主机快照定时任务。

因此,本发明实施例中,当某些定时任务出现故障时,会及时进行降级操作,从而节省系统资源。

可以理解的是,在极端情况下,例如网络异常、服务器崩溃等情况,会导致降级不成功,则本申请实施例可以通过下面步骤执行。

获取定时任务的执行记录以及定时巡检任务将所述定时任务作为目标执行完成后所保存的巡检记录;

对比执行记录和巡检记录,确定未能成功降级的定时任务。

确定出定时任务后,可以采用手动降级的方式来直接降级,当然,也可以等到下一次定时巡检任务自动执行。

本申请实施例另一方面公开了一种定时任务的处理装置。

参见图3,图3是本申请实施例中提供的一种定时任务的处理装置的结构示意图。

本申请实施例提供的一种定时任务的处理装置,包括:

调度模块1,用于当预先创建的定时巡检任务被触发时,获得该定时巡检任务的定时任务类型;依据所述定时任务类型,确定与所述任务类型相匹配的定时任务;确定所述定时任务中在预定时间段内执行失败的次数超过预定阈值的目标定时任务;

定时任务管理模块2,用于禁用所述目标定时任务。

还包括中间件模块3;

所述中间件模块用于接收由所述调度模块发送mq消息,存储所述mq消息并将所述mq消息发送给所述定时任务管理模块,所述mq消息包括所述目标定时任务的任务信息以及错误信息。

本申请实施例中,主要涉及两个模块,一个是调度模块,另一个是定时任务管理模块。还包括有中间件模块,该中间件模块可以是mq中间件,用来接收mq消息。

其中,中间件模块可以降低服务器的系统消耗和资源消耗。

本申请实施例中,预先创建有定时巡检任务,该定时巡检任务的触发可以是依据在定时巡检任务创建时所设置的系统定时器来进行触发的。也可以是通过用户手动操作来触发的。

其中,定时巡检任务中包括有定时任务类型。定时任务类型例如创建云主机快照。

本申请实施例中,来确定与定时任务类型匹配的定时任务。其中,定时任务可以有多个,例如每一个创建云主机快照的主机地址不同。

本申请实施例中,在定时任务中确定目标定时任务。目标定时任务是指在预定时间段内执行失败次数超过预定阈值的那些定时任务。

其中,预定时间段可以是指已经发生的一段时间内,也可以是当前开始到未来时刻的一段时间内。

可以理解的是,执行失败的次数可以是连续失败的次数,也可以是失败次数累加的次数,根据实际需要进行设置即可,在此不进行限定。

具体的,所述确定所述定时任务中在预定时间段内执行失败的次数超过预定阈值的目标定时任务包括:

在存储空间中查询预定时间段内每一个定时任务的任务执行结果;

筛选所述任务执行结果中任务执行连续失败次数超过预定阈值的流程实例;

将所述流程实例所对应的定时任务作为目标定时任务。

本申请实施例中,定时任务执行完成后会在存储空间中保存相关信息。其中,存储空间可以是中间件的存储空间,例如mq中间件的数据库或者存储在存储系统的存储空间例如elasticsearch检索系统的存储空间中。

因此,本申请实施例中,可以根据存储空间的类型去选择相应的方式去执行。例如数据库可以采用数据库的检测方式,而检索系统则可以调用其api去进行检测。

本申请实施例中,会获得每一个定时任务的任务执行结果,然后筛选出连续失败次数超过预定阈值的流程实例。例如,某云主机快照的具体实例对应的定时任务在2个小时内连续失败超过了3次,则,将该实例对应的定时任务作为目标定时任务。

本申请实施例中,确定出目标定时任务后,会其进行降级操作,例如禁用该目标定时任务。

本申请实施例中,所述定时任务管理模块还用于:

分析所述错误信息生成业务报表;

将所述业务报表发送给业务端。

本申请实施例中,所述调度模块还用于创建定时巡检任务;

所述定时巡检任务的创建过程包括:

获得业务方发送的定时策略以及定时任务类型;

依据所述定时策略以及定时任务类型对调度模板中的相关参数进行赋值;

依据赋值后的调度模板创建用于执行所述定时巡检任务触发的流程实例和用于触发所述定时巡检任务的定时器。

定时巡检任务的创建过程可以参考前述实施例中一种定时任务的处理方法实施例中的相关过程,在此不进行赘述。

可以理解的是,在极端情况下,例如网络异常、服务器崩溃等情况,会导致降级不成功,则本申请实施例可以通过下面步骤执行。

获取定时任务的执行记录以及定时巡检任务将所述定时任务作为目标执行完成后所保存的巡检记录;

对比执行记录和巡检记录,确定未能成功降级的定时任务。

确定出定时任务后,可以采用手动降级的方式来直接降级,当然,也可以等到下一次定时巡检任务自动执行。

本申请实施例提供一种定时任务的处理装置,当预先创建的定时巡检任务被触发时,获得该定时巡检任务的定时任务类型;依据所述定时任务类型,确定与所述任务类型相匹配的定时任务;确定所述定时任务中在预定时间段内执行失败的次数超过预定阈值的目标定时任务;禁用所述目标定时任务。可以看出,由于本申请实施例中,利用定时巡检任务在定时任务中确定出在预定时间段内执行失败次数超过预定阈值的目标定时任务,及时对目标定时任务禁用,不会频繁产生错误日志,避免了由于执行失败而反复执行所造成的资源浪费。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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