一种消息的任务状态处理方法及系统与流程

文档序号:13908723阅读:235来源:国知局
一种消息的任务状态处理方法及系统与流程

本发明涉及互联网技术领域,尤其涉及一种消息的任务状态处理方法及系统。



背景技术:

在几千台甚至上万台服务器的环境下,我们部署了成千上万的任务,对于任务状态跟踪的方式,通常用cronjob来执行,结果重定向到文件中来记录执行的日志,而这种情况下,只能针对单机进行操作,如果机器数量大了,想查看所有机器的某个任务的执行情况,会变的异常麻烦,浪费时间。

现有的技术一般采用的方式有两种:

第一种:将job执行的结果重定向到文件中记录下来执行的日志,此种方法存在如下缺点:

1.查看所有机器的某个任务的执行情况,随着机器数量的增加会变的异常麻烦,浪费时间

2.只能单机模式,无法管理集群类型的服务

3.如果任务执行的异常频繁,记录的跟踪点过多的话,大量日志读写引发磁盘的容量和io问题

第二种,采用类c/s的模式,边缘数据agent和中央通信,此种方法存在如下缺点:

1.消息组装格式问题

xml的格式,浪费带宽和存储空间

json的格式,灵活但是数据类型不统一

avro,pb等强schema的格式,变更格式不方便

2.消息传输方式为tcp长链接,中央连接数过多,负载压力大

3.边缘安装agent

部署成本,需要有类似puppet的管理工具支持

版本维护成本高,升级会带来边缘功能不一致

占用系统资源,容易影响其他服务。



技术实现要素:

为了解决上述技术问题,本发明提供了一种消息的任务状态处理方法及系统。

本发明提供了一种消息的任务状态处理方法,包括:

向网络平台申请目标任务的任务标识,构造此任务标识的报告信息结构体并发送至pingurl接口;

边缘服务器通过pingurl接口接收到所述任务标识的报告信息结构体后,在报告信息结构体中填充所述目标任务的状态和此边缘服务器的标识后发送至中心服务器;

中心服务器从接收到的报告信息结构体解析出信息并存储;

网络服务器接收针对所述目标任务的状态查询请求后,查询包含所述目标任务的任务标识的所有信息并返回至请求方。

进一步的,报告信息结构体包括用于存储任务标识的任务标识字段、任务状态子结构体;任务状态子结构体包括用于存储目标任务状态的状态字段、用于存储边缘服务器的标识的服务器字段。

进一步的,报告信息结构体还包括检验码字段和/或编码格式字段;

方法还包括:

边缘服务器计算检验码,在报告信息结构体的检验码字段添加校验码,中央服务器使用检验码字段中的信息对任务状态子结构体进行校验;和/或,边缘服务器确定编码格式,在报告信息结构体的编码格式字段添加编码格式,并使用此编码格式对应的编码方法对任务状态子结构体进行编码后发送至中央服务器,中央服务器使用编码格式字段中的编码格式对应的编码方法对任务状态子结构体进行解码。

进一步的,中心服务器从接收到的报告信息结构体解析出信息并存储包括:中心服务器从接收到的报告信息结构体解析出任务标识及任务状态子结构体内的信息,构造成存储服务器所需的格式,并发送至存储服务器。

进一步的,中央服务器定期检测存储服务器中各任务标识对应的任务状态,检测到任务状态为异常的任务标识后,发送任务异常通知;和/或;中央服务器定期检测存储服务器中针对各任务标识的任务状态上报时间,检测最后上报时间与当前时间间隔超过预设时长后,发送任务上报超时异常通知。

本发明还提供了一种消息的任务状态处理系统,包括:

终端设备,用于向网络平台申请目标任务的任务标识,构造此任务标识的报告信息结构体并发送至pingurl接口;

边缘服务器,用于通过pingurl接口接收到任务标识的报告信息结构体后,在报告信息结构体中填充目标任务的状态和此边缘服务器的标识后发送至中心服务器;

中心服务器,用于从接收到的报告信息结构体解析出信息并存储;

网络服务器,用于接收针对目标任务的状态查询请求后,查询包含目标任务的任务标识的所有信息并返回至请求方。

进一步地,报告信息结构体包括用于存储任务标识的任务标识字段、任务状态子结构体;任务状态子结构体包括用于存储目标任务状态的状态字段、用于存储边缘服务器的标识的服务器字段。

进一步地,报告信息结构体还包括检验码字段和/或编码格式字段;

边缘服务器,还用于计算检验码,在报告信息结构体的检验码字段添加校验码;

中央服务器,还用于使用检验码字段中的信息对任务状态子结构体进行校验;

和/或,

边缘服务器,还用于确定编码格式,在报告信息结构体的编码格式字段添加编码格式,并使用此编码格式对应的编码方法对任务状态子结构体进行编码后发送至中央服务器;

中央服务器,还用于使用编码格式字段中的编码格式对应的编码方法对任务状态子结构体进行解码。

进一步地,系统还包括存储服务器;

中心服务器,还用于从接收到的报告信息结构体解析出任务标识及任务状态子结构体内的信息,构造成存储服务器所需的格式,并发送至存储服务器。

进一步地,中央服务器包括检测模块和通知模块;

检测模块,用于定期检测存储服务器中各任务标识对应的任务状态;

通知模块,用于检测模块检测到任务状态为异常的任务标识后,发送任务异常通知;

和/或;

检测模块,用于定期检测存储服务器中针对各任务标识的任务状态上报时间;

通知模块,用于检测模块检测最后上报时间与当前时间间隔超过预设时长后,发送任务上报超时异常通知。

本发明具有以下优点:

1.相比于现有的tcp协议,使用http协议,发送一次数据建立一次短链接,不必长期占用服务器的网络连接描述符,可以有效节省网络资源。

2.不必在边缘节点部署代理,可以节省边缘服务器的处理资源,并且利于维护。

3.自定义的报告信息结构体包括固定格式部分还包括或扩展的字段部分,方便开发人员使用。

4.自定义的报告信息结构体自带校验字段,可用于判断消息是否完整正确。

5.自定义的报告信息结构体自带压缩方式指示字段,可以节省网络资源。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是实施例中消息的任务状态处理方法的流程图。

图2是实施例中消息的任务状态处理系统的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1是消息的任务状态处理方法,此方法包括:

步骤1,向网络平台申请目标任务的任务标识,构造此任务标识的报告信息结构体并发送至pingurl接口;

步骤2,边缘服务器通过pingurl接口接收到上述任务标识的报告信息结构体后,在报告信息结构体中填充上述目标任务的状态和此边缘服务器的标识后发送至中心服务器;

步骤3,中心服务器从接收到的报告信息结构体解析出信息并存储;

步骤4,网络服务器接收针对上述目标任务的状态查询请求后,查询包含上述目标任务的任务标识的所有信息并返回至请求方。

其中,

步骤1中的执行主体一般为终端设备。步骤4中的状态查询请求一般也由终端设备发出。

报告信息结构体包括用于存储任务标识的任务标识字段、任务状态子结构体;任务状态子结构体包括用于存储目标任务状态的状态字段、用于存储边缘服务器的标识的服务器字段。

除了上述字段,报告信息结构体还包括检验码字段和/或编码格式字段。步骤3中,中心服务器从接收到的报告信息结构体解析出信息包括:边缘服务器计算检验码,在报告信息结构体的检验码字段添加校验码,中央服务器使用检验码字段中的信息对任务状态子结构体进行校验;和/或,边缘服务器确定编码格式,在报告信息结构体的编码格式字段添加编码格式,并使用此编码格式对应的编码方法对任务状态子结构体进行编码后发送至中央服务器,中央服务器使用编码格式字段中的编码格式对应的编码方法对任务状态子结构体进行解码。

例如:

报告信息结构体的结构如下:

步骤2中边缘服务器将构造的报告信息结构体发送至中央服务器时,可以直接发送至中央服务器也可以经由代理服务器发送至中央服务器。边缘服务器向中央服务器发送报告信息结构体时,向中央服务器发送http连接请求,连接成功后发送报告信息结构体,发送成功后断开此http连接。相比于现有的tcp协议,使用http协议不必长期占用服务器的网络连接描述符,可以有效节省网络资源。

步骤2中边缘服务器将构造的报告信息结构体具体包括:

步骤201,填充job_id,此job_id是步骤1中用户登录网络服务器申请到的。

步骤202,填充codec,确定jobstatus的压缩方式。

步骤203,填充jobstatus的结构体,包括以下内容:

步骤204,填充crc校验码,基于节省计算资源的角度可采用md5的计算方式。

md5的实现逻辑如下

importmd5

defget_md5code(str):

m=md5.new()

m.update(str)

returnm.hexdigest()

将返回的md5code处理成为int32类型的数据填充crc校验码。

步骤3中,中心服务器接收到报告信息结构体后具体执行以下步骤:

步骤301,读取数据包的任务标识,查询网络平台是否存在此任务标识,如果不存在则丢弃,处理结束,否则,执行步骤302。

步骤302,读取报告信息结构体的crc部分,获得crc校验码。

步骤303,读取报告信息结构体的job_status部分,进行进行md5计算,获得md5信息码后,转换成crc支持的数据格式(例如int32类型),和步骤302中解析出的crc部分的内容对比,如果匹配,则判断此数据正确,执行步骤304,否则丢弃。

步骤304,读取报告信息结构体中的codec字段,使用此字段中指示的编码方法将数据包解压缩job_status的信息,将此信息构成造存储服务器支持的格式发送至存储服务器。例如存储服务器为mongodb且支持json格式,则将此信息构造成json格式,写入mongodb。

本方法还包括以下步骤:

中央服务器定期检测存储服务器中各任务标识对应的任务状态,检测到任务状态为异常的任务标识后,发送任务异常通知,通知负责人员处理。

中央服务器定期检测存储服务器中针对各任务标识的任务状态上报时间,检测最后上报时间与当前时间间隔超过预设时长后,发送任务上报超时异常通知,通知负责人员处理。

通过此方法,用户登录网络服务器时,可以查看自己申请的任务在各服务器上的运行状态,各服务器上的任务的负责人、运行状态、最后汇报时间等信息,还可以统计相同状态对应的边缘服务器所占的比例。例如:在x%的边缘服务器处于running的状态,在y%的机器上处于success的状态,在z%的机器上处于failed的状态等信息。用户还可以通过网络服务器设置报警周期,并且设置在哪些状态执行报警,例如任务处于stopped,failed等状态时执行报警。

图2是实施例中消息的任务状态处理系统的结构图。此系统包括:

终端设备,用于向网络平台申请目标任务的任务标识,构造此任务标识的报告信息结构体并发送至pingurl接口;

边缘服务器,用于通过pingurl接口接收到任务标识的报告信息结构体后,在报告信息结构体中填充目标任务的状态和此边缘服务器的标识后发送至中心服务器;

中心服务器,用于从接收到的报告信息结构体解析出信息并存储;

网络服务器,用于接收针对目标任务的状态查询请求后,查询包含目标任务的任务标识的所有信息并返回至请求方。

报告信息结构体包括用于存储任务标识的任务标识字段、任务状态子结构体;任务状态子结构体包括用于存储目标任务状态的状态字段、用于存储边缘服务器的标识的服务器字段。

其中,

报告信息结构体还包括检验码字段和/或编码格式字段;

边缘服务器,还用于计算检验码,在报告信息结构体的检验码字段添加校验码;

中央服务器,还用于使用检验码字段中的信息对任务状态子结构体进行校验;

和/或,

边缘服务器,还用于确定编码格式,在报告信息结构体的编码格式字段添加编码格式,并使用此编码格式对应的编码方法对任务状态子结构体进行编码后发送至中央服务器;

中央服务器,还用于使用编码格式字段中的编码格式对应的编码方法对任务状态子结构体进行解码。

系统还包括存储服务器;中心服务器,还用于从接收到的报告信息结构体解析出任务标识及任务状态子结构体内的信息,构造成存储服务器所需的格式,并发送至存储服务器。

中央服务器包括检测模块和通知模块。

检测模块,用于定期检测存储服务器中各任务标识对应的任务状态;

通知模块,用于检测模块检测到任务状态为异常的任务标识后,发送任务异常通知;

和/或;

检测模块,用于定期检测存储服务器中针对各任务标识的任务状态上报时间;

通知模块,用于检测模块检测最后上报时间与当前时间间隔超过预设时长后,发送任务上报超时异常通知。

本发明具有以下优点:

1.相比于现有的tcp协议,使用http协议,发送一次数据建立一次短链接,不必长期占用服务器的网络连接描述符,可以有效节省网络资源。

2.不必在边缘节点部署代理,可以节省边缘服务器的处理资源,并且利于维护。

3.自定义的报告信息结构体包括固定格式部分还包括或扩展的字段部分,方便开发人员使用。

4.自定义的报告信息结构体自带校验字段,可用于判断消息是否完整正确。

5.自定义的报告信息结构体自带压缩方式指示字段,可以节省网络资源。

上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

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

以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

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