一种定时任务管理方法和系统与流程

文档序号:11133723阅读:850来源:国知局
一种定时任务管理方法和系统与制造工艺

本发明涉及一种计算机技术领域,更确切地说是一种定时任务管理方法和系统。



背景技术:

随着互联网的发展,各web网站应用几乎都会碰到越来越多的定时任务调度的需求。定时任务调度是指由系统在预设的定时时间自动执行后台任务,所有在指定时间一次性或周期性执行的后台任务称之为后台定时任务。一个定时任务功能项称之为定时任务项。比如一些电商的需求,需要凌晨把商品的价格修改,这时我们就需要白天先配置好所有需要修改的商品价格,凌晨再去执行修改价格的脚本。

随着互联网的发展,每个系统都会遇到越来愈多的运营需求,随之而来的定时任务也越来越多。随着定时任务的增加,运维人员参与管理难度随之增大;各个定时任务执行是否成功,只能通过任务中的程序来判断,增加开发工作量且无法及时知道定时任务执行结果。



技术实现要素:

针对上述缺陷,本发明提供了一种定时任务管理方法。包括:

管理定时任务,对各个应用系统的定时任务进行统一管理;

轮询定时任务,根据预设定的时间定期轮询所有任务,获取满足条件的定时任务,然后将满足条件的定时任务发送給对应的应用系统;

执行定时任务,各应用系统接收定时任务,并生成独立工作进程执行定时任务。

提供一种定时任务管理方法,所述的管理定时任务可以对定时任务的任务名称,定时任务执行的类、函数、参数,定时任务触发时间,定时任务运行环境进行设置;设置完后,将数据保存到数据库中。

提供一种定时任务管理方法,通过结构化查询语言的正则匹配获取所有满足条件的定时任务。

提供一种定时任务管理方法,将满足条件的定时任务发送给各应用系统的步骤进一步包括:

同时记录下所述任务执行的应用账户、设备地址和设备开机时间。

提供一种定时任务管理方法,进一步包括对任务完成状态判断步骤:

若定时任务执行成功,通知定时任务管理系统更新相应定时任务的执行进程号、结束时间和成功状态;

若定时任务执行失败,通知定时任务管理系统更新相应定时任务的结束时间、失败状态和失败原因。

此外,为实现上述目的,本发明还提供一种定时任务管理系统,包括:

定时任务管理单元,用于对各个应用系统的定时任务进行统一管理;

定时任务轮询单元,用于根据预设定的时间定期轮询所有任务,获取满足条件的定时任务,然后将满足条件的定时任务发送給对应的应用系统;

定时任务执行单元,用于各应用系统接收定时任务,并生成独立工作进程执行定时任务。

提供一种定时任务管理系统,所述的定时任务管理单元可以对定时任务的任务名称,定时任务执行的类、函数、参数,定时任务触发时间,定时任务运行环境进行设置;设置完后,将数据保存到数据库中。

提供一种定时任务管理系统,所述的轮询定时任务单元通过结构化查询语言的正则匹配获取所有符合条件的定时任务。

提供一种定时任务管理系统,所述定时任务轮询单元将所有满足条件的定时任务发送给各应用系统,并同时记录下所述定时任务执行的应用账户、设备地址和开机时间。

提供一种定时任务管理系统,所述定时任务执行单元进一步包括任务完成状态判断模块:

若定时任务成功完成,任务完成状态判断模块通知定时任务管理系统更新相应的任务进程号、结束时间和成功状态;

若定时任务执行失败,任务完成状态判断模块通知定时任务管理系统更新相应的结束时间、失败状态和失败原因。

本发明对照现有技术,解决了定时任务众多是管理复杂的问题,且能够及时获取到定时任务是否执行成功。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

【附图说明】

图1为本发明定时任务管理方法流程图;

图2为本发明定时任务执行流程图;

图3为本发明定时任务管理系统的单元结构示意图;

图4为本发明定时任务管理系统的操作界面示意图。

【具体实施方式】

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为为本发明定时任务管理方法流程图。

400:对各个应用系统的定时任务进行统一管理;

后台管理员在定时任务管理后台首先选择哪个应用系统的任务。任务包括任务名称,任务执行的类、函数、参数、触发时间、环境运行的设置(单机、集群对应进程数),设置完后,数据保存在数据库中。

下面给出两个任务的具体实施例:

(1)比如晚上要做一个修改手机价格的定时任务。

任务名称:修改XX手机价格。

选择执行任务的系统:XX手机官网。

类:mobile(类名称,对应为某个模块)。

方法:modifyPrice(方法名称,一个方法可以实现相应的功能)。

参数:mobileId=123(mobileId为参数名称,123指XX手机的ID)。

触发时间:16-03-0-29-00-00(映射关系为年-月-周-日-小时-分钟参数对应的就是2016年3月29号凌晨触发)。

运行环境设置:单机进程数:1个,集群设置:0(表示只需要一个进程执行即可无需多余的进程执行)。

(2)如我们每分钟从XX物流获取10个订单的状态数据

任务名称:获取XX物流订单状态。

选择执行任务的系统:CSM仓储系统。

类:order(类名称,对应为某个模块)。

方法:SyncOrder(方法名称,一个方法可以实现相应的功能)。

参数:limit=10,(limit为参数名称,这里10表示每次获取10个订单)。

触发时间:00-00-0-00-**-**(映射关系为年-月-周-日-小时-分钟参数对应的就是每年每月每日每小时每分钟触发)。

运行环境设置:单机进程数:2个,集群设置:3(表示只单机可运行的进程为2个,集群有3个可以运行)。

定时任务管理后台程序主要对任务进行增、删、改、查,这里数据存储于数据库。管理员后台通过密码登陆以后,便可以对任务进行添加、删除、修改和查找,并将数据存储于数据库中。

可选地,以列表形式将任务信息存储在数据库中,表中的条目分别对应与定时任务相关的各种信息。以列表形式存储配置信息可以方便对每个定时任务的配置信息进行查找。由于配置信息可以指示不同定时任务的调起时间和执行定时任务的机器,因此以列表形式存储配置信息可以方便对定时任务进行调起和监控。

可选地,配置信息可以进一步包括下列项中的一项或多项:多个机器上的定时任务中的每一个定时任务的脚本名称、脚本参数、脚本属性信息、最近执行时间、事务成功数、事务失败数、事务异常数。

可选地,数据库可以存储在外部服务器中,也就是说,数据库可以是在用于管理定时任务的设备之外的外部数据库。可选地,数据库也可以是存储在用于管理定时任务的设备中的本地数据库。可以预先将与定时任务相关的配置信息存储在数据库中。配置信息可以指示每个定时任务应当何时调起以及应当在哪个机器上执行。这样,用于管理定时任务的设备可以根据配置信息的指示来按时调起定时任务用于在对应的机器上执行。

当需要新增一个任务的时候,后台管理员在任务管理模块中新增一个定时任务,选择应用系统、填写对应的任务名称、执行时间(与crontab功能保持一致)、需执行的类、函数、参数、以及环境运行的设置(单机、集群对应进程数)。通过可配置的方式高效管理所有的定时任务,而不需要运维人员参与,减少人员投入。

该可配置的方式后台管理员可以根据实际情况灵活配置,并无固定模式或流程设置,非常方便。

500:根据预设定的时间定期轮询所有任务,获取满足条件的定时任务,然后将满足条件的定时任务发送給对应的应用系统;

通过crontab设置一条轮询任务,每分钟定时轮询所有任务,获取出所有的符合时间的任务出来。这里我们通过结构化查询语言(sql)语法中的正则匹配即可找出所有符合时间的任务,避免每个定时任务一个个去判断是否为符合时间的任务。根据符合时间的任务中环境运行的设置(单机、集群对应进程数),对任务进程数进行控制,如:任务进程数超过设定的值,则此任务直接丢弃,不通知应用服务器;任务设置为只能单机运行时,当集群应用服务器已有正在执行中此任务机器,就直接丢弃不通知应用服务器。所以,任务轮询程序在匹配出服务时间的任务后,对应用服务器的进程起到了监控的作用,避免任务重复执行导致应用服务器的压力上升。

可以理解的是,定时轮询任务的调起时间可以是具体的时刻,例如每天三点开始执行、每个月的倒数第二天开始执行等。定时轮询任务的调起时间也可以是每隔一分钟执行一次、每隔十天执行一次等。

当通过时间的判断以及进程的管控后,轮询模块将所有的任务通过任务通知接口,通知到各应用系统中去,同时记录下此任务执行的应用服务器地址(ID)、机器地址(ID)、开始时间。

定时任务管理系统中任务轮询程序通过一个任务每分钟来轮询数据库中的数据,匹配所有符合当前触发时间的定时任务,再根据符合时间的任务中环境运行的设置(单机、集群对应进程数),来对任务进程数进行限制,从而获取时间及环境运行条件的任务这里我们定为有效任务。

在获取符合时间的方法中我们通过结构化查询语言(sql)语法中的正则匹配来实现,在每个定时任务中设置触发时间的存储格式以符合结构化查询语言(sql)的条件来存储,避免了每个定时任务一个个去判断是否为有效任务。通过数据库锁机制来限制进程数不超过设置的值。通过此模块我们达到了有效任务的筛选,有效的限制了重复任务进程的产生降低了服务器因为进程数过多而导致的服务器压力过大甚至宕机的危险。

可选地,设置轮询任务时可以设置多个定时触发程序,以保证并发性任务按时执行。在操作时需有授权密钥,授权密钥可用于保护任务内容不被泄露。授权的管理人员可通过管理工具对任务进行管理工作。授权的管理人员通过管理工具定义任务,确定任务的执行计划。授权的管理人员可开启定义任务管理器,使得任务按执行计划进入自动执行阶段。授权的管理人员可通过管理工具配置或开发执行任务。

600:各应用系统接收定时任务,并生成独立工作进程执行定时任务。

各应用系统监听到有任务进来,即生成工作进程执行任务,任务之间互不影响。通过任务对应的类、函数及参数运行对应的脚本直接触发任务。

为防止对任务的任意篡改,任务定义与任务队列加密单独存放,只有在正常授权后通过本系统提供的管理工具管理任务。

任务队列表存在内存中,同时也保存在磁盘上,保存磁盘上的目的用于服务器异常终止时备份当时的任务队列,以便补做任务。

现有技术中最常用的定时任务管理为微软的任务计划程序,与任务计划程序相比,本发明不仅适用于本地应用系统,也适用于远程服务,适用性更广;可跨服务器调用,在执行上实现分布式,执行效率更高;管理人员不需要对服务器的授权,日常运营维护上更简单,操作上更具安全性。

各应用系统中任务执行模块:此模块相当于应用系统定时任务的进程管理模块,监听来自轮询模块传递过来的有效任务,收到任务后生成工作进程执行任务,任务之间互不影响。通过任务对应的类、函数及参数运行对应的脚本直接触发任务。这里各应用系统都包含各自的代码实现方式,即通过任务中的类、函数以及参数就可以触发任务的执行程序601。

任务执行,指具体的执行任务,可以是本地应用程序,或是外部的服务。任务执行器必须实现规定的接口:任务执行实体自身能捕获异常,并将异常通过任务调度接口返回给任务调度处;任务执行后需要调用定时服务器接口,标明本次任务结束。如果任务执行有多个步骤,执行某个步骤时出现异常,再次执行时只需要执行后续的步骤,此功能需任务自身具有记录功能(如邮件或短信成功生成,在调用发送邮件或短信服务时出现异常,再次重试时只需调用发送邮件服务)。

图2为本发明定时任务执行流程图,任务执行程序601进一步定时任务完成状态判断:

6011:定时任务执行成功,通知定时任务管理系统更新相应定时任务的执行进程号、结束时间和成功状态;

6012:定时任务执行失败,通知定时任务管理系统更新相应定时任务的结束时间、失败状态和失败原因。

当定时任务执行成功后通知定时任务管理系统后台更新相应的任务的进程号PID、结束时间及成功状态等,若执行失败则通知更新相应的结束时间、失败状态及失败原因等信息。方便管理人员快速定位任务状态,在排查问题的情况下,能精准定位到任务的执行应用、执行机器、执行时间、执行进程、失败信息等。

本实施例中可选地包括任务加载程序,任务加载程序周期性扫描所述数据库中的定时轮询任务表,将所述周期内即将执行的定时任务加载到服务器中,并创建定时任务。

图3为本发明定时任务管理系统的单元结构示意图,任务管理系统S700包括:

S400:定时任务管理单元,用于对各个应用系统的定时任务进行统一管理;

S500:定时任务轮询单元,用于根据预设定的时间定期轮询所有任务,获取满足条件的定时任务,然后将满足条件的定时任务发送給对应的应用系统;

其中任务管理单元、任务轮询单元放置在独立的定时任务管理系统。

优选地,设置轮询任务时可以设置多个定时触发模块,用以保证并发性任务按时执行。在操作时需有授权密钥,授权密钥可用于保护任务内容不被泄露。授权的管理人员可通过管理工具对任务进行管理工作。授权的管理人员通过管理工具定义任务,确定任务的执行计划。授权的管理人员可开启定义任务管理器,使得任务按执行计划进入自动执行阶段。授权的管理人员可通过管理工具配置或开发执行任务。

S600:各应用系统接收定时任务,并生成独立工作进程执行定时任务。任务执行单元分置于各应用系统。

本发明定时任务管理系统,多台应用服务器接入定时任务管理系统,任务管理系统预先配置好所有应用服务器ID对应的服务器的机器ID以及任务通知接口。

图4为本发明定时任务管理系统的操作界面示意图,用户(后台管理员)登录后台设置任务内容,任务设置完成后存储于数据库,任务轮询程序获得有效任务后,通知各应用服务器,各应用服务器通过任务执行程序执行任务,并返回任务状态信息给后台服务器,并将任务执行情况存储数据库。

本发明定时任务管理系统中,任务管理单元的任务包括任务名称、任务执行的类、函数、参数、触发时间、运行环境的设置,设置完后,数据保存到数据库中。

下面是给出的两个任务的具体实施例

(1)比如晚上要做一个修改手机价格的定时任务。

任务名称:修改XX手机价格。

选择执行任务的系统:XX手机官网。

类:mobile(类名称,对应为某个模块)。

方法:modifyPrice(方法名称,一个方法可以实现相应的功能)。

参数:mobileId=123(mobileId为参数名称,123指XX手机的ID)。

触发时间:16-03-0-29-00-00(映射关系为年-月-周-日-小时-分钟参数对应的就是2016年3月29号凌晨触发)。

运行环境设置:单机进程数:1个,集群设置:0(表示只需要一个进程执行即可无需多余的进程执行)。

(2)如我们每分钟从顺丰物流获取10个订单的状态数据。

任务名称:获取XX物流订单状态。

选择执行任务的系统:CSM仓储系统。

类:order(类名称,对应为某个模块)。

方法:SyncOrder(方法名称,一个方法可以实现相应的功能)。

参数:limit=10,(limit为参数名称,这里10表示每次获取10个订单)。

触发时间:00-00-0-00-**-**(映射关系为年-月-周-日-小时-分钟参数对应的就是每年每月每日每小时每分钟触发)。

运行环境设置:单机进程数:2个,集群设置:3(表示只单机可运行的进程为2个,集群有3个可以运行)。

可选地,数据库可以存储在外部服务器中,也就是说,数据库可以是在用于管理定时任务的设备之外的外部数据库。可选地,数据库也可以是存储在用于管理定时任务的设备中的本地数据库。可以预先将与定时任务相关的配置信息存储在数据库中。配置信息可以指示每个定时任务应当何时调起以及应当在哪个机器上执行。这样,用于管理定时任务的设备可以根据配置信息的指示来按时调起定时任务用于在对应的机器上执行。

本系统还可以包括用户界面模块,其配置用于利用用户界面来呈现后台定时任务的运行状态以及与用户进行交互。作为示例,用户界面模块可以例如与操作系统相结合生成图形用户界面(GUI),用以呈现系统上目前运行的后台定时任务或其子集的信息。例如,可以在GUI上任务标识(ID)、任务状态以及相关的信息。

用户界面模块允许用户通过交互的方式查看和管理后台定时任务。作为示例,用户可以选择特定的后台定时任务。作为响应,系统可以向用户呈现与该任务相关的运行参数、日志、子任务、资源使用情况或其他任何有关信息。通过用户界面模块的操作,克服了现有技术中无法以直观、可操作的方式来查看和管理后台定时任务的缺陷。

在某些实施方式中,系统还可以包括备份模块,其配置用于响应于后台定时任务和/或所述系统本身的至少一个发生异常而执行备份。具体而言,备份模块可以在任务监控模块监控到任何给定后台定时任务发生异常时,对与该任务有关的数据和信息进行备份。备选地或附加地,当设备本身的运行发生了异常时,备份模块可以对设备目前处理的所有后台定时任务进行备份。在此,系统本身的异常可以由设备进行自检,也可由独立于系统的设备或过程加以检测。

另外,根据本发明的实施方式,备份操作可以将数据和信息备份到后台定时任务所在的相同计算系统中,也可以离台备份到不同的系统或设备中。此外,根据本发明的实施方式,当一个发生异常的后台定时任务经过处理被恢复之后,可以删除与该任务有关的备份以节省存储资源。

本发明定时任务管理系统中,所述的任务轮询单元包括时间获取模块,通过结构化查询语言语法的正则匹配获取所有符合时间的任务。

本发明定时任务管理系统中,所述任务执行单元将所有任务通过任务通知接口通知到各应用系统中,并,

同时记录下所述任务执行的应用ID(应用账户)、机器ID(机器物理地址)和开机时间。

本发明定时任务管理系统中,所述任务执行单元进一步包括:

任务成功完成,通知定时任务管理系统后台更新相应的任务进程号PID、结束时间和成功状态。

任务执行失败,通知定时任务管理系统后台更新相应的结束时间、失败状态和失败原因。

本实施例中可选地包括任务加载模块,任务加载模块周期性扫描所述数据库中的定时轮询任务表,将所述周期内即将执行的定时任务加载到服务器中,并创建定时任务。

本发明对照现有技术,解决了定时任务众多是管理复杂的问题,且能够及时获取到定时任务是否执行成功。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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