实时获取GoCD执行任务的方法及系统技术方案

技术编号:23983305 阅读:16 留言:0更新日期:2020-04-29 12:20
本发明专利技术提供了一种实时获取GoCD执行任务日志的方法及系统,该方法包括:代理服务器实时推送任务日志及对应的多个任务标识至GoCD服务器;GoCD服务器创建临时文件区域对接受的任务日志进行存储,并根据代理服务器反馈的任务状态变更消息将存储的临时文件转换为最终日志文件,以及将临时文件发送至前端进行实时展示;前端根据任务状态变更消息按需拉取最终日志文件。本发明专利技术的有益效果为:时日志可见,且对外提供数据支撑,用于前端各类展示;不影响原有GoCD服务流程,即无需修改原有GoCD自身代码与逻辑;提供临时数据与最终数据,保证整个运行过程都有日志可追踪。在易用性和扩展性方面有极大提升。

The method and system of getting real-time gocd to perform tasks

【技术实现步骤摘要】
实时获取GoCD执行任务的方法及系统
本专利技术属于计算机服务端测试领域,具体涉及了一种实时获取GoCD执行任务的方法及系统。
技术介绍
在对于GoCD的使用中,由于其界面十分不友好,业务需要重新定制前端表现。在实现和梳理后台接口的时候,发现一个无法跨越的问题。即GoCD执行pipeline的时候,实时日志输出是不对外的。也就是在pipeline任务没有执行完成时,是无法通过接口获取其输出日志的。每个被推送来的消息都被写入到服务端的临时文件,在页面上看到的实时数据,也就是临时文件中的内容。当调度结束,也就是任务结束的时候,服务端将临时文件变更为最终的日志文件,供也无妨下载与查看后台接口获取的文件。如何以最小的代价实时获取其每个步骤的状态、状态变更的流水及状态变更的消息触达,使构建任务过程的可把控是需要解决的技术问题。
技术实现思路
本专利技术的目的在于至少解决现有技术中存在的技术问题之一,提供了实时获取GoCD执行任务日志的方法及系统,将任务执行过程中的日志,实时返回至业务端。在具体项目使用中,具有高效、简单、方便、实用的特性,弥补了GoCD自身不提供该功能的缺陷。本专利技术的技术方案包括一种实时获取GoCD执行任务日志的方法,其特征在于,该方法包括以下步骤:S100,代理服务器实时推送任务日志及对应的多个任务标识至GoCD服务器;S200,GoCD服务器创建临时文件区域对接受的任务日志进行存储,并根据代理服务器反馈的任务状态变更消息将存储的临时文件转换为最终日志文件,以及将临时文件发送至前端进行实时展示;S300,前端根据任务状态变更消息按需拉取最终日志文件。根据所述的实时获取GoCD执行任务日志的方法,其中任务标识包括线性通信模型名称、实例ID、步骤名称、步骤实例ID、任务名称。根据所述的实时获取GoCD执行任务日志的方法,其中该方法还包括:根据任务标识确认唯一任务,并获取对应任务的所有日志。根据所述的实时获取GoCD执行任务日志的方法,其中S200具体包括:S210,GoCD服务器实时对代理服务器发送的日志信息进行接受,并以临时文件形式进行存储,同时将临时文件信息发送至前端,前端对临时日志文件进行动态显示;S220,对代理服务器下对应任务状态进行实时监控,但代理服务器发出对应任务状态结束的标识时,GoCD将接收的临时文件转存为最终日志文件,同时保留临时文件。根据所述的实时获取GoCD执行任务日志的方法,其中最终日志文件以多个任务标识的字符串的组合作为文件命名。根据所述的实时获取GoCD执行任务日志的方法,其中文件命名方式配置为:将多个任务标识对应的字符串进行拼接,并进行UTF-8进行转换,最后计算其MD5值,将所述MD5值作为临时文件名称。根据所述的实时获取GoCD执行任务日志的方法,其中S300还包括:根据要求对最终日志信息进行配置,将配置后的最终日志文件输入至前端显示界面。本专利技术的技术方案还包括一种实时获取GoCD执行任务日志的系统,所述系统用于执行上述任一所述方法,其特征在于:代理客户端,用于实时推送任务日志及对应的多个任务标识至GoCD服务器,以及,对任务状态进行实时监控;GoCD客户端,用于创建临时文件区域对接受的任务日志进行存储,并根据代理服务器反馈的任务状态变更消息将存储的临时文件转换为最终日志文件,以及将临时文件发送至前端;前端,用于对临时日志进行实时显示,以及,按需拉取最终日志文件进行显示。本专利技术的有益效果为:时日志可见,且对外提供数据支撑,用于前端各类展示;不影响原有GoCD服务流程,即无需修改原有GoCD自身代码与逻辑;提供临时数据与最终数据,保证整个运行过程都有日志可追踪。在易用性和扩展性方面有极大提升;对于增加或者修改模块逻辑,均不会影响其他模块,保证服务的可用性与扩展性。附图说明下面结合附图和实施例对本专利技术进一步地说明;图1所示为根据本专利技术实施方式的总体流程图。图2所示为根据本专利技术实施方式的总体系统框图。具体实施方式本部分将详细描述本专利技术的具体实施例,本专利技术之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本专利技术的每个技术特征和整体技术方案,但其不能理解为对本专利技术保护范围的限制。在本专利技术的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。本专利技术的描述中,除非另有明确的限定,设置等词语应做广义理解,所属
技术人员可以结合技术方案的具体内容合理确定上述词语在本专利技术中的具体含义。图1所示为根据本专利技术实施方式的总体流程图。具体包括:S100,代理服务器实时推送任务日志及对应的多个任务标识至GoCD服务器;S200,GoCD服务器创建临时文件区域对接受的任务日志进行存储,并根据代理服务器反馈的任务状态变更消息将存储的临时文件转换为最终日志文件,以及将临时文件发送至前端进行实时展示;S300,前端根据任务状态变更消息按需拉取最终日志文件。基于图1所示的流程,本专利技术提出了以下的具体实施方式,包括:1、Agent(代理服务端)推送实时job日志至服务端,推送附带所有的关键信息,即pipeline名称、实例ID、stage名称、stage实例ID、job(任务)名称等,这些唯一确认是具体哪个任务产生的日志。这里的日志即为该task(任务)运行是产生的所有日志。2、服务端将接收日志存放至临时日志文件。且前端展示临时文件的日志内容3、Agent上job结束,通知服务端4、服务端关闭临时文件,并将临时文件拷贝为最终job日志文件。此时临时文件和最终文件都是存在的。而临时文件会根据业务需求依然写入相关数据或者日志,并定时拷贝覆盖最终文件5、最终job文件上传,供需求方下载6、外部服务远程连接至GoCD的服务端7、根据pipeline(线性通信模型)名称、实例ID、stage(步骤)名称、stage实例ID、job名称拼接字符串.再去MD5的值,具体算法如下:获取的唯一编码,即为临时文件的文件名称。8、生成唯一序列码,具体算法是将GoCD的算法,用python实现,方法为将拼接字符串做utf-8编码,再取MD5值。该值即为一个job对应的日志临时文件名称9、远程获取该临时文件内容10、监控job状态,该状态变更为完成状态时,标志着整个任务的完结。此时临时文件会被删除,获取接口变更为调用GoCD自身接口,获取正式文件的内容。即任务执行过程中,获取临时文件内容;任务执行结束,则调用GoCD自身接口,获取正式文件内容。11、整理优化数据个数,展示前端。图2所示为根据本发本文档来自技高网
...

【技术保护点】
1.一种实时获取GoCD执行任务日志的方法,其特征在于,该方法包括以下步骤:/nS100,代理服务器实时推送任务日志及对应的多个任务标识至GoCD服务器;/nS200,GoCD服务器创建临时文件区域对接受的任务日志进行存储,并根据代理服务器反馈的任务状态变更消息将存储的临时文件转换为最终日志文件,以及将临时文件发送至前端进行实时展示;/nS300,前端根据任务状态变更消息按需拉取最终日志文件。/n

【技术特征摘要】
1.一种实时获取GoCD执行任务日志的方法,其特征在于,该方法包括以下步骤:
S100,代理服务器实时推送任务日志及对应的多个任务标识至GoCD服务器;
S200,GoCD服务器创建临时文件区域对接受的任务日志进行存储,并根据代理服务器反馈的任务状态变更消息将存储的临时文件转换为最终日志文件,以及将临时文件发送至前端进行实时展示;
S300,前端根据任务状态变更消息按需拉取最终日志文件。


2.根据权利要求1所述的实时获取GoCD执行任务日志的方法,其特征在于,所述任务标识包括线性通信模型名称、实例ID、步骤名称、步骤实例ID、任务名称。


3.根据权利要求1所述的实时获取GoCD执行任务日志的方法,其特征在于,该方法还包括:根据任务标识确认唯一任务,并获取对应任务的所有日志。


4.根据权利要求1所述的实时获取GoCD执行任务日志的方法,其特征在于,所述S200具体包括:
S210,GoCD服务器实时对代理服务器发送的日志信息进行接受,并以临时文件形式进行存储,同时将临时文件信息发送至前端,前端对临时日志文件进行动态显示;
S220,对代理服务器下对应任务状态进行实时监控,但代理服务器发出对应任务状态结束的标识时,GoC...

【专利技术属性】
技术研发人员:郭申李爱华张鹏飞
申请(专利权)人:珠海金山网络游戏科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1