CN111078648A - 实时获取GoCD执行任务的方法及系统 - Google Patents

实时获取GoCD执行任务的方法及系统 Download PDF

Info

Publication number
CN111078648A
CN111078648A CN201911201180.9A CN201911201180A CN111078648A CN 111078648 A CN111078648 A CN 111078648A CN 201911201180 A CN201911201180 A CN 201911201180A CN 111078648 A CN111078648 A CN 111078648A
Authority
CN
China
Prior art keywords
task
gocd
file
log
real time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911201180.9A
Other languages
English (en)
Inventor
郭申
李爱华
张鹏飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Kingsoft Online Game Technology Co Ltd
Original Assignee
Zhuhai Kingsoft Online Game Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Kingsoft Online Game Technology Co Ltd filed Critical Zhuhai Kingsoft Online Game Technology Co Ltd
Priority to CN201911201180.9A priority Critical patent/CN111078648A/zh
Publication of CN111078648A publication Critical patent/CN111078648A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

实时获取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所示为根据本发明实施方式的总体系统框图。该系统包括:代理客户端,用于实时推送任务日志及对应的多个任务标识至GoCD服务器,以及,对任务状态进行实时监控;GoCD客户端,用于创建临时文件区域对接受的任务日志进行存储,并根据代理服务器反馈的任务状态变更消息将存储的临时文件转换为最终日志文件,以及将临时文件发送至前端;前端,用于对临时日志进行实时显示,以及,按需拉取最终日志文件进行显示。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

Claims (8)

1.一种实时获取GoCD执行任务日志的方法,其特征在于,该方法包括以下步骤:
S100,代理服务器实时推送任务日志及对应的多个任务标识至GoCD服务器;
S200,GoCD服务器创建临时文件区域对接受的任务日志进行存储,并根据代理服务器反馈的任务状态变更消息将存储的临时文件转换为最终日志文件,以及将临时文件发送至前端进行实时展示;
S300,前端根据任务状态变更消息按需拉取最终日志文件。
2.根据权利要求1所述的实时获取GoCD执行任务日志的方法,其特征在于,所述任务标识包括线性通信模型名称、实例ID、步骤名称、步骤实例ID、任务名称。
3.根据权利要求1所述的实时获取GoCD执行任务日志的方法,其特征在于,该方法还包括:根据任务标识确认唯一任务,并获取对应任务的所有日志。
4.根据权利要求1所述的实时获取GoCD执行任务日志的方法,其特征在于,所述S200具体包括:
S210,GoCD服务器实时对代理服务器发送的日志信息进行接受,并以临时文件形式进行存储,同时将临时文件信息发送至前端,前端对临时日志文件进行动态显示;
S220,对代理服务器下对应任务状态进行实时监控,但代理服务器发出对应任务状态结束的标识时,GoCD将接收的临时文件转存为最终日志文件,同时保留临时文件。
5.根据权利要求1所述的实时获取GoCD执行任务日志的方法,其特征在于,所述最终日志文件以多个任务标识的字符串的组合作为文件命名。
6.根据权利要求1所述的实时获取GoCD执行任务日志的方法,其特征在于,所述文件命名方式配置为:
将多个任务标识对应的字符串进行拼接,并进行UTF-8进行转换,最后计算其MD5值,将所述MD5值作为临时文件名称。
7.根据权利要求1所述的实时获取GoCD执行任务日志的方法,其特征在于,所述S300还包括:
根据要求对最终日志信息进行配置,将配置后的最终日志文件输入至前端显示界面。
8.一种实时获取GoCD执行任务日志的系统,所述系统用于执行权利要求1-7任一所述方法,其特征在于:
代理客户端,用于实时推送任务日志及对应的多个任务标识至GoCD服务器,以及,对任务状态进行实时监控;
GoCD客户端,用于创建临时文件区域对接受的任务日志进行存储,并根据代理服务器反馈的任务状态变更消息将存储的临时文件转换为最终日志文件,以及将临时文件发送至前端;
前端,用于对临时日志进行实时显示,以及,按需拉取最终日志文件进行显示。
CN201911201180.9A 2019-11-29 2019-11-29 实时获取GoCD执行任务的方法及系统 Pending CN111078648A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911201180.9A CN111078648A (zh) 2019-11-29 2019-11-29 实时获取GoCD执行任务的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911201180.9A CN111078648A (zh) 2019-11-29 2019-11-29 实时获取GoCD执行任务的方法及系统

Publications (1)

Publication Number Publication Date
CN111078648A true CN111078648A (zh) 2020-04-28

Family

ID=70312059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911201180.9A Pending CN111078648A (zh) 2019-11-29 2019-11-29 实时获取GoCD执行任务的方法及系统

Country Status (1)

Country Link
CN (1) CN111078648A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106130782A (zh) * 2016-07-19 2016-11-16 努比亚技术有限公司 一种获取服务器日志的方法和系统
CN106294672A (zh) * 2016-08-08 2017-01-04 杭州玳数科技有限公司 一种日志实时展现和查询的方法与系统
CN106575307A (zh) * 2014-08-21 2017-04-19 卓普网盘股份有限公司 具有用于个人搜索的方法的多用户搜索系统
CN107153695A (zh) * 2017-05-05 2017-09-12 恒生电子股份有限公司 日志记录方法及装置、电子设备、存储介质
CN107798099A (zh) * 2017-10-27 2018-03-13 努比亚技术有限公司 一种日志信息抓取方法、终端和计算机可读存储介质
CN108076098A (zh) * 2016-11-16 2018-05-25 北京京东尚科信息技术有限公司 一种业务处理方法及系统
CN110175154A (zh) * 2019-05-17 2019-08-27 深圳前海微众银行股份有限公司 一种日志记录的处理方法、服务器及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106575307A (zh) * 2014-08-21 2017-04-19 卓普网盘股份有限公司 具有用于个人搜索的方法的多用户搜索系统
CN106130782A (zh) * 2016-07-19 2016-11-16 努比亚技术有限公司 一种获取服务器日志的方法和系统
CN106294672A (zh) * 2016-08-08 2017-01-04 杭州玳数科技有限公司 一种日志实时展现和查询的方法与系统
CN108076098A (zh) * 2016-11-16 2018-05-25 北京京东尚科信息技术有限公司 一种业务处理方法及系统
CN107153695A (zh) * 2017-05-05 2017-09-12 恒生电子股份有限公司 日志记录方法及装置、电子设备、存储介质
CN107798099A (zh) * 2017-10-27 2018-03-13 努比亚技术有限公司 一种日志信息抓取方法、终端和计算机可读存储介质
CN110175154A (zh) * 2019-05-17 2019-08-27 深圳前海微众银行股份有限公司 一种日志记录的处理方法、服务器及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王海林, 北京:国防工业出版社 *

Similar Documents

Publication Publication Date Title
CN105915633B (zh) 自动化运维系统和方法
US10997531B2 (en) System, method and graphical user interface for workflow generation, deployment and/or execution
JP2017050011A (ja) ワークフロー生成、配置、及び/又は実行のためのシステム、方法、及びグラフィカルユーザインターフェイス
CN107592238A (zh) 接口的自动测试方法及系统、服务终端、存储器
CN104021080A (zh) 基于自定义脚本的自动化测试系统
CN112256701A (zh) 一种动态埋点数据采集系统及其使用方法
CN112286806A (zh) 自动化测试方法、装置、存储介质及电子设备
EP2933726B1 (en) Apparatus, system and method for application log data processing
CN112306887B (zh) 程序测试分发方法及其相应的装置、设备、介质
CN109299124B (zh) 用于更新模型的方法和装置
US20210286610A1 (en) System and method for implementing software release version update automation tool
CN112765152A (zh) 用于合并数据表的方法和装置
CN110619014A (zh) 一种基于etl的数据抽取方法
CN111966382A (zh) 机器学习模型的在线部署方法、装置及相关设备
CN107015831A (zh) 一种基于服务器端升级的客户端升级管理方法及系统
CN114866617A (zh) 一种微服务请求处理方法、装置、设备及介质
CN111104181A (zh) 一种可视化编辑任务流程的网页数据填报系统
CN117453280B (zh) 一种代码拓扑和业务拓扑生成方法、装置、设备及介质
CN115984022B (zh) 分布式支付系统统一对账方法和装置
US12039352B2 (en) Systems and methods for automatically generating guided user interfaces (GUIs) for tracking and migrating legacy networked resources within an enterprise during a technical migration
CN111078648A (zh) 实时获取GoCD执行任务的方法及系统
CN111143408A (zh) 一种基于业务规则的事件处理方法和装置
US11630844B2 (en) System and method for augmenting synced data across multiple systems to facilitate data cleansing
CN114169840A (zh) 一种基于数据库引擎的流程审批方法、装置及可读介质
CN110515611B (zh) 一种文书编号的生成方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination