任务处理方法、管理平台、执行端及计算机可读存储介质与流程

文档序号:17474879发布日期:2019-04-20 06:03阅读:165来源:国知局
任务处理方法、管理平台、执行端及计算机可读存储介质与流程

本发明涉及运维技术领域,尤其涉及任务处理方法、管理平台、执行端及计算机可读存储介质。



背景技术:

目前,运维人员在处理运维任务(计算任务、测试任务等)时,需要手动进行选择待执行的运维任务、选择所需的执行端等操作,当任务数量较多时,会加重运维人员的工作压力,也会导致任务处理效率不够高。



技术实现要素:

本发明的主要目的在于提供一种任务处理方法、管理平台、执行端及计算机可读存储介质,旨在解决现有技术中运维任务处理效率低下的技术问题。

为实现上述目的,本发明提供一种任务处理方法,所述任务处理方法应用于管理平台,所述任务处理方法包括以下步骤:

当处于任务触发时间点时,将所述任务触发时间点对应的目标任务推送至redis队列;

获取所述目标任务的路由策略,基于所述路由策略,确定所述目标任务对应的执行端;

通过预置的消息传递插件,将所述redis队列中的目标任务下发至所述执行端;

接收所述执行端通过预置的消息传递插件回调的执行状态信息;

在可视化界面上显示所述执行状态信息。

可选的,所述获取所述目标任务的路由策略,基于所述路由策略,确定所述目标任务对应的执行端的步骤包括:

获取所述目标任务的路由策略,并基于所述路由策略获取执行端信息;

基于所述路由策略以及所述执行端信息,确定目标任务对应的执行端。

可选的,所述预置的消息传递插件包括预置的管理平台对应的主etcd服务器以及执行端对应的子etcd服务器,所述通过预置的消息传递插件,将所述redis队列中的目标任务下发至所述执行端的步骤包括:

通过所述主etcd服务器,将所述redis队列中的目标任务下发至所述执行端对应的子etcd服务器,以供所述执行端从所述子etcd服务器中获取所述目标任务。

可选的,所述接收所述执行端通过预置的消息传递插件回调的执行状态信息的步骤之后,还包括:

基于所述执行状态信息生成日志文件,并对所述日志文件进行异常分析;

当所述日志文件存在异常时,输出告警提示。

此外,为实现上述目的,本发明还提供一种任务处理方法,所述任务处理方法应用于执行端,所述任务处理方法包括以下步骤:

获取管理平台通过预置的消息传递插件下发的目标任务,并检测所述目标任务的数量是否大于或等于2;

若目标任务的数量大于或等于2,则获取每个目标任务的权重值;

基于所述权重值,确定任务执行顺序;

按照所述任务执行顺序,执行目标任务,并将执行状态通过预置的消息传递插件回调至管理平台。

可选的,所述执行目标任务的步骤包括:

创建目标任务的执行脚本,并创建对应的进程,在所述进程上运行所述执行脚本。

可选的,所述按照所述任务执行顺序,执行目标任务,并将执行状态通过预置的消息传递插件回调至管理平台的步骤之后,还包括:

在执行目标任务的期间,若接收到暂停指令,则停止执行目标任务。

此外,为实现上述目的,本发明还提供一种管理平台,所述管理平台包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务处理程序,所述任务处理程序被所述处理器执行时实现如上所述的任务处理方法的步骤。

此外,为实现上述目的,本发明还提供一种执行端,所述执行端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务处理程序,所述任务处理程序被所述处理器执行时实现如上所述的任务处理方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有任务处理程序,所述任务处理程序被处理器执行时实现如上所述的任务处理方法的步骤。

本发明中,当处于任务触发时间点时,将所述任务触发时间点对应的目标任务推送至redis队列;获取所述目标任务的路由策略,基于所述路由策略,确定所述目标任务对应的执行端;通过预置的消息传递插件,将所述redis队列中的目标任务下发至所述执行端;接收所述执行端通过预置的消息传递插件回调的执行状态信息;在可视化界面上显示所述执行状态信息。通过本发明,在任务的触发时间点自动触发任务,并为任务选择适宜的执行端,既提高了任务的执行效率也提高了任务处理的成功率。

附图说明

图1为本发明实施例方案涉及的硬件运行环境的管理平台结构示意图;

图2为本发明实施例方案涉及的硬件运行环境的执行端结构示意图;

图3为本发明任务处理方法第一实施例的流程示意图;

图4为本发明任务处理方法一实施例中任务处理系统的架构示意图;

图5为本发明任务处理方法第二实施例的流程示意图;

图6为本发明任务管理装置的功能模块示意图;

图7为本发明任务执行装置的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

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

如图1所示,图1为本发明实施例方案涉及的硬件运行环境的管理平台结构示意图。

如图1所示,该管理平台可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的管理平台结构并不构成对管理平台的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及任务处理程序。

在图1所示的管理平台中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的任务处理程序,并执行以下应用在管理平台中的任务处理方法的各个实施例中的操作。

如图2所示,图2为本发明实施例方案涉及的硬件运行环境的执行端结构示意图。

如图2所示,该执行端可以包括:处理器2001,例如cpu,网络接口2004,用户接口2003,存储器2005,通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。用户接口2003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器2005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器2005可选的还可以是独立于前述处理器2001的存储装置。

本领域技术人员可以理解,图2中示出的管理平台结构并不构成对管理平台的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图2所示,作为一种计算机存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及任务处理程序。

在图2所示的执行端中,网络接口2004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口2003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器2001可以用于调用存储器2005中存储的任务处理程序,并执行以下应用在执行端中的任务处理方法的各个实施例中的操作。

参照图3,图3为本发明任务处理方法第一实施例的流程示意图。

本实施例中,任务处理方法应用于管理平台,任务处理方法包括:

步骤s10,当处于任务触发时间点时,将所述任务触发时间点对应的目标任务推送至redis队列;

本实施例中,管理平台亦可称作任务调度平台,可通过计算机实现。该管理平台使用python(是一门有条理的和强大的面向对象的程序设计语言)作为基础语言进行开发。参照图4,图4为本发明任务处理方法一实施例中任务处理系统的架构示意图。如图4所示,任务处理系统包括管理平台、消息传递插件(主etcd服务器、子etcd服务器)以及执行端。其中,平台管理人员可以通过任务管理模块添加新任务或删除现有任务,或对现有任务的配置信息进行更改;由有权操作任务审批模块的人员,对任务管理模块中的更改进行审批;server管理模块用于对管理平台进行系统管理;执行日志查看模块用于保存执行日志以供相关人员查看执行日志;注册接收模块用于接收执行端的注册模块通过消息传递插件上报的注册信息;任务调度模块以及任务下发模块用于任务的触发以及下发至相应的执行端的执行模块;执行状态接收模块用于接收执行端中执行模块上报的任务执行状态信息。图4中,仅示出了执行端1以及其对应的子etcd服务器1,和执行端2以及其对应的子etcd服务器2,但执行端的数量不限于2个,可根据实际需要,设置多个执行端以及各个执行端对应的子etcd服务器。

本实施例中,任务以及任务对应的配置信息由用户预先写入管理平台中(具体是记录在管理平台的任务管理装置)。其中,任务的数量可以是一个也可以是多个,具体根据实际需要进行设置。例如,在管理平台中预先存储有n个任务(任务1至任务n),任务1对应配置信息1,任务2对应配置信息2……任务n对应配置信息n。配置信息包括任务触发时间点、执行任务需要传递的参数以及任务对应的路由策略等信息。

当当前时刻t为任务触发时间点时,例如,t为任务1、任务2、任务3、……、任务24、任务25的触发时间点,则当前时刻t对应的目标任务为任务1至任务25,通过管理平台中的任务调度模块将任务1至任务25推送至redis队列。此处,将待执行的任务推送至redis队列,是因为redis每秒能写入的数据单线程最高为1.7w/s,故可以很好的实现多任务同时触发,不会导致待执行任务丢失。(若不采用redis队列,在任务触发时,如果同一时刻同时有几百上千的任务同时触发,假如每个任务触发的过程是5秒,那么1分钟之内只有20个任务可以执行,到第21个任务时,调度器发现该任务的配置的执行时间和当前时间不符,故就错过了准时执行了)

步骤s20,获取所述目标任务的路由策略,基于所述路由策略,确定所述目标任务对应的执行端;

本实施例中,目标任务的路由策略从目标任务对应的配置信息中获取,路由策略指为目标任务选择执行端的策略。

一可选实施例中,目标任务1的路由策略可以是:选择负载最小的执行端。则管理平台根据各个执行端上传的状态信息,从各个执行端中选择当前负载最小的执行端作为目标任务1对应的执行端。

另一可选实施例中,目标任务2的路由策略可以是:选择处理能力最强的执行端,则管理平台根据各个执行端上传的注册信息,从各个执行端中选择处理能力最强(以处理器每秒可处理的数据量作为衡量标准)的执行端,作为目标任务2对应的执行端。

另一可选实施例中,目标任务3的路由策略可以是:选择处于空闲状态的执行端,则管理平台根据各个执行端上传的状态信息,从各个执行端中选择当前处于空闲状态的执行端作为目标任务3对应的执行端。

在上述实施例中,若符合要求的执行端有多个,则从符合要求的多个执行端中随机选择一个作为目标任务对应的执行端。

步骤s30,通过预置的消息传递插件,将所述redis队列中的目标任务下发至所述执行端;

本发明一可选实施例中,预置的消息传递插件包括预置的管理平台对应的主etcd服务器以及执行端对应的子etcd服务器(etcd是用于共享配置和服务发现的分布式,一致性的kv存储系统),该步骤s30包括:

通过所述主etcd服务器,将所述redis队列中的目标任务下发至所述执行端对应的子etcd服务器,以供所述执行端从所述子etcd服务器中获取所述目标任务。经过步骤s20的处理,若目标任务中,目标任务1对应的执行端为执行端a,目标任务2对应的执行端为执行端b,目标任务3对应的执行端为执行端c。则管理平台中任务下发模块将redis队列中的目标任务1传递至执行端a对应的子etcd服务器1,以供子etcd服务器1将目标任务1传递至执行端a,或是执行端a在监听到该信息传递事件时,主动从子etcd服务器1上获取该目标任务1;同理,管理平台中任务下发模块将redis队列中的目标任务2传递至执行端b对应的子etcd服务器2,以供子etcd服务器2将目标任务2传递至执行端b,或是执行端b在监听到该信息传递事件时,主动从子etcd服务器2上获取该目标任务2;同理,管理平台中任务下发模块将redis队列中的目标任务3传递至执行端c对应的子etcd服务器3,以供子etcd服务器3将目标任务3传递至执行端c,或是执行端c在监听到该信息传递事件时,主动从子etcd服务器3上获取该目标任务3。本实施例中,通过etcd服务器作为消息传递插件,保证消息传输的准确性以及快速性。在此,对消息传递插件的选择不作限制,只要能达到上述效果的消息传递插件均可。

步骤s40,接收所述执行端通过预置的消息传递插件回调的执行状态信息;

本实施例中,执行端接收到目标任务时(实质是接收到目标任务的源码),便创建目标任务对应的执行脚本以及进程,并在进程上运行执行脚本,且将执行脚本的运行状态信息(运行中状态、运行完毕状态、运行失败状态等)、进程号信息回调至管理平台。其中,执行脚本的运行状态信息以及进程号信息统称为执行状态信息,执行状态信息的传递路径为:执行端至其对应的子etcd服务器,再到主etcd服务器,然后传递到管理平台中的执行状态接收装置,如此,管理平台便接收到执行端通过预置的消息传递插件回调的执行状态信息。

步骤s50,在可视化界面上显示所述执行状态信息。

本实施例中,可提供一可视化界面,用于对执行状态信息进行展示,使得相关人员可清楚的了解目标任务的执行进度。

本实施例中,当处于任务触发时间点时,将所述任务触发时间点对应的目标任务推送至redis队列;获取所述目标任务的路由策略,基于所述路由策略,确定所述目标任务对应的执行端;通过预置的消息传递插件,将所述redis队列中的目标任务下发至所述执行端;接收所述执行端通过预置的消息传递插件回调的执行状态信息;在可视化界面上显示所述执行状态信息。通过本实施例,在任务的触发时间点自动触发任务,并为任务选择适宜的执行端,既提高了任务的执行效率也提高了任务处理的成功率。

本发明任务处理方法一实施例中,步骤s20包括:

获取所述目标任务的路由策略,并基于所述路由策略获取执行端信息;

基于所述路由策略以及所述执行端信息,确定目标任务对应的执行端。

本实施例中,不同的目标任务可能有不同的路由策略。例如,目标任务1的路由策略为选择负载最小的执行端。则当前需要获取的执行端信息为各个执行端的状态信息,然后根据各个执行端上传的状态信息,从各个执行端中选择当前负载最小的执行端作为目标任务1对应的执行端。又例如,目标任务2的路由策略为选择处理能力最强的执行端。则当前需要获取的执行端信息为各个执行端的注册信息(注册信息中包含了对应执行端的性能信息),然后根据各个执行端上传的注册信息,从各个执行端中选择处理能力最强(以处理器每秒可处理的数据量作为衡量标准)的执行端作为目标任务2对应的执行端。在上述实施例中,若符合要求的执行端有多个,则从符合要求的多个执行端中随机选择一个作为目标任务对应的执行端。

本实施例中,根据目标任务对应的路由策略选择符合要求的执行端,提高了目标任务被选定的执行端成功处理的几率。

进一步的,本发明任务处理方法一实施例中,步骤s40之后,还包括:

基于所述执行状态信息生成日志文件,并对所述日志文件进行异常分析;

当所述日志文件存在异常时,输出告警提示。

本实施例中,日志文件记录了目标任务对应的执行起始时刻、执行端以及执行端状态等信息。管理平台还可以与外围的监控系统对接。管理平台根据接收到的执行状态信息生成日志文件,并将日志文件发送至监控系统。监控系统对管理平台发送的日志文件进行异常分析;当检测到日志文件存在异常时,可以以短信的形式向系统管理员发送告警提示;从而,系统管理员在收到告警提示后,可以及时的进行人工干预。其中,监控系统对管理平台发送的日志文件进行异常分析可以是,根据日志文件中的记录,检测对应的目标任务的执行时间与其的触发时间之间的时差是否小于或等于预设阈值,若大于预设阈值,则认定日志文件存在异常,或是根据日志文件中的记录,检测执行端与目标任务路由策略的要求是否匹配,若否,则认定日志文件存在异常。

本实施例中,通过对日志文件进行异常分析,并在存在异常时输出告警提示,使得相关人员可及时进行人工干预。

参照图5,图5为本发明任务处理方法第二实施例的流程示意图。

本实施例中,任务处理方法应用于执行端,任务处理方法包括:

步骤s60,获取管理平台通过预置的消息传递插件下发的目标任务,并检测所述目标任务的数量是否大于或等于2;

本实施例中,以执行端x为例,执行端x对其对应的子etcd服务器x进行监听,若管理平台通过主etcd服务器向执行端x的子etcd服务器x推送了目标任务,则执行端x从子etcd服务器x中获取该目标任务;或是在管理平台通过主etcd服务器向执行端x的子etcd服务器x推送了目标任务后,由子etcd服务器x直接将该目标任务推送至执行端x。执行端x在接收到目标任务后,检测目标任务的数量是否大于或等于2

步骤s70,若目标任务的数量大于或等于2,则获取每个目标任务的权重值;

步骤s80,基于所述权重值,确定任务执行顺序;

本实施例中,若目标任务的数量大于或等于2,例如,目标任务包括任务1至任务6,则获取每个任务的权重值。其中,每个任务在任务被写入管理平台时,为每个任务赋予权重值。例如,6个任务的权重值分别是:{任务1,1},{任务2,5},{任务3,2},{任务4,3},{任务5,4},{任务4,6}。

根据上述各个任务的权重值,确定任务执行顺序为{任务4,6},{任务2,5},{任务5,4},{任务4,3},{任务3,2},{任务1,1}。

步骤s90,按照所述任务执行顺序,执行目标任务,并将执行状态通过预置的消息传递插件回调至管理平台。

本实施例中,按照执行顺序,逐个执行目标任务。并将执行状态通过消息传递插件回调至管理平台。执行状态包括:任务对应的执行脚本的运行状态、任务对应的进程号等信息。本实施例中,执行目标任务的步骤包括:创建目标任务的执行脚本,并创建对应的进程,在所述进程上运行所述执行脚本。例如,根据目标任务1的源码1,创建该源码1对应的执行脚本1,并创建进程1,在进程1上运行该执行脚本1,然后将执行脚本1的运行状态信息(运行中状态、运行完毕状态、运行失败状态等)、进程号(即进程1的进程号)信息回调至管理平台。其中,执行脚本的运行状态信息以及进程号信息统称为执行状态信息,执行状态的回调路径为:由执行端至其对应的子etcd服务器,再到主etcd服务器,然后传递到管理平台中的执行状态接收装置,如此,管理平台便接收到执行端通过预置的消息传递插件回调的执行状态信息。

本实施例中,当一个执行端同时接收到多个目标任务时,根据每个目标任务的权重值确定每个目标任务的执行顺序,然后按照确定的执行顺序依次执行各个目标任务,即根据目标任务的优先级执行各个目标任务,使得目标任务被执行时更符合用户需求。

进一步的,本发明任务处理方法一实施例中,步骤s90之后,还包括:

在执行目标任务的期间,若接收到暂停指令,则停止执行目标任务。

本实施例中,目标任务被执行的期间,用户可在需要时,手动暂停其执行进程。由于各个执行端之间是独立的,一个执行端上的执行进程被打断时,不会影响其他执行端的工作,提高了任务执行的可操作性且不会影响整体的任务执行进度。

参照图6,图6为本发明任务管理装置的功能模块示意图。

所述任务管理装置包括:

任务推送模块10,用于当处于任务触发时间点时,将所述任务触发时间点对应的目标任务推送至redis队列;

执行端选择模块20,用于获取所述目标任务的路由策略,基于所述路由策略,确定所述目标任务对应的执行端;

任务下发模块30,用于通过预置的消息传递插件,将所述redis队列中的目标任务下发至所述执行端;

执行状态信息接收模块40,用于接收所述执行端通过预置的消息传递插件回调的执行状态信息;

显示模块50,用于在可视化界面上显示所述执行状态信息。

一实施例中,所述执行端选择模块20包括:

获取单元,用于获取所述目标任务的路由策略,并基于所述路由策略获取执行端信息;

选择单元,用于基于所述路由策略以及所述执行端信息,确定目标任务对应的执行端。

一实施例中,所述预置的消息传递插件包括预置的管理平台对应的主etcd服务器以及执行端对应的子etcd服务器,所述任务下发模块30包括:

任务下发单元,用于通过所述主etcd服务器,将所述redis队列中的目标任务下发至所述执行端对应的子etcd服务器,以供所述执行端从所述子etcd服务器中获取所述目标任务

一实施例中,任务管理装置还包括:

异常分析模块,用于基于所述执行状态信息生成日志文件,并对所述日志文件进行异常分析;当所述日志文件存在异常时,输出告警提示。

本发明任务管理装置的具体实施例与上述任务处理方法的各个实施例基本相同,在此不做赘述。

参照图7,图7为本发明任务执行装置的功能模块示意图。

所述任务执行装置包括:

检测模块60,用于获取管理平台通过预置的消息传递插件下发的目标任务,并检测所述目标任务的数量是否大于或等于2;

获取模块70,用于若目标任务的数量大于或等于2,则获取每个目标任务的权重值;

排序模块80,用于基于所述权重值,确定任务执行顺序;

任务处理模块90,用于按照所述任务执行顺序,执行目标任务,并将执行状态通过预置的消息传递插件回调至管理平台。

一实施例中,任务处理模块90包括:

任务处理单元,用于创建目标任务的执行脚本,并创建对应的进程,在所述进程上运行所述执行脚本。

一实施例中,任务执行装置还包括:

暂停模块,用于在执行目标任务的期间,若接收到暂停指令,则停止执行目标任务。

本发明任务执行装置的具体实施例与上述任务处理方法的各个实施例基本相同,在此不做赘述。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有任务处理程序,所述任务处理程序被处理器执行时实现如上所述的任务处理方法的步骤。

本发明计算机可读存储介质的具体实施例与上述任务处理方法的各个实施例基本相同,在此不做赘述。

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

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

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

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

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