CN111176988A - 基于GoCD的Python客户端 - Google Patents

基于GoCD的Python客户端 Download PDF

Info

Publication number
CN111176988A
CN111176988A CN201911323544.0A CN201911323544A CN111176988A CN 111176988 A CN111176988 A CN 111176988A CN 201911323544 A CN201911323544 A CN 201911323544A CN 111176988 A CN111176988 A CN 111176988A
Authority
CN
China
Prior art keywords
gocd
management module
data
client
python
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.)
Granted
Application number
CN201911323544.0A
Other languages
English (en)
Other versions
CN111176988B (zh
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 CN201911323544.0A priority Critical patent/CN111176988B/zh
Publication of CN111176988A publication Critical patent/CN111176988A/zh
Application granted granted Critical
Publication of CN111176988B publication Critical patent/CN111176988B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于GoCD的Python客户端,包括:功能模块,多个所述功能模块继承对应的基础模块,所述基础模块包括有对接GoCD对应模块的处理函数;所述客户端对外部请求逻辑进行分析,根据结果对调用对应的所述基础模块和/或直接从数据库调取数据。本发明的有益效果为:持最新版的GoCD服务,保障可以使用GoCD最新的特性。同时支持多种策略的访问后台,并发、同步、请求数据库等,也实现了将细粒度接口封装为粗粒度接口的功能。在具体项目使用中,具有高效、简单、方便、实用的特性,弥补了目前市面上没有很好GoCD的Python客户端的缺陷。

Description

基于GoCD的Python客户端
技术领域
本发明属于计算机服务端测试领域,具体涉及了一种基于GoCD的Python客户端。
背景技术
GoCD,一个开源的持续集成和持续交付系统,可以在持续交付过程中执行编译,自动化测试,自动部署等等,与Jenkins类似。在对于GoCD的使用中,发现其没有良好的Python客户端支持,因为GoCD本身使用java语言写的,故而其对java的支持是与生俱来的。
GoCD根据功能分为十几个模块,每个模块对外提供https的接口,所有与GoCD的交互皆有https的接口完成。GoCD后端采用H2的数据库存放数据。
这类设计是没有问题的,但是不足够灵活,最大的问题是性能问题。由于模块接口足够细化,那么我们需要多个模块的信息,就需要请求多次https的接口,也就是与后台交互多次。性能上很有问题,交互越多,越容易出问题,安全性上也不是很好。由于只提供细粒度的接口,在易用性上就打了折扣,造成使用者会过度的关注各个接口的功能和结果正确与否。
发明内容
本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了基于GoCD的Python客户端,使得GoCD的调用更加高效和简单。
本发明的技术方案包括一种基于GoCD的Python客户端,其特征在于,包括:功能模块,多个所述功能模块继承对应的基础模块,所述基础模块包括有对接GoCD对应模块的处理函数;
所述客户端对外部请求逻辑进行分析,根据结果对调用对应的所述基础模块和/或直接从数据库调取数据。
根据所述的基于GoCD的Python客户端,其中功能模块包括线性通信模型管理模块、材料管理模块、用户管理模块、任务步骤管理模块、任务管理模块、代理管理模块、环境管理模块、插件管理模块、模板管理模块及项目管理模块。
根据所述的基于GoCD的Python客户端,其中处理函数包括:Https的封装和验证、拉取与推送方法、数据下载、数据转换、异步方法及同步方法。
根据所述的基于GoCD的Python客户端,其中Python客户端具体包括:若请求逻辑为细粒度或粗粒度访问,则识别逻辑对应需求,通过所述功能模块对GoCD进行访问,其中粗粒度访问为直接访问GoCD模块且返回数据为整体数据的访问,细粒度为具体属性接口;若请求为复杂逻辑访问,则不经过GoCD的Https接口,直接对GoCD的数据库进行访问并获取数据,其中复杂逻辑包括耗时的逻辑请求、数据结构拼接复杂的请求及GoCD自身没提供接口的请求。
根据所述的基于GoCD的Python客户端,其中Python客户端还包括:对GoCD进行异步或并发访问。
根据所述的基于GoCD的Python客户端,其中Python客户端还包括:提供多个开放式接口用于外部数据的访问,所述开放式接口与所述功能模块一一对应。
本发明的有益效果为:口模块化封装,既有粗粒度的模块化接口,也有细粒度的属性接口;并发高效,对外提供的接口均可并发调用。对于复杂的接口,其内部也采用了并发的形式。即模块内外的接口均采用并发的形式实现,这在服务性能上提供了有力保障。提供GoCD自身以外的业务接口。本发明对于复杂的逻辑,采用绕开GoCD自身逻辑层的方式,直达其数据库。通过数据库获取数据,再组合运算。这就大大扩展了GoCD以外的接口,极大的支持了业务的需求简洁易用。由于本发明采用模块化的设计,相对比其他客户端,在易用性和扩展性方面有极大提升。对于增加或者修改模块逻辑,均不会影响其他模块,保证服务的可用性与扩展性。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1所示为根据本发明实施方式的系统功能模块图;
图2所示为根据本发明实施方式的整体结构示意图。
具体实施方式
本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
图1所示为根据本发明实施方式的系统功能模块图。具体包括:上图展示了客户端的主要逻辑模块。具体来讲就是针对GoCD的模块进行一对一的封装,封装的每个模块都继承base模块,base模块提供主要的方法,如https的封装和验证、get与post方法、数据下载、数据转换、异步方法、同步方法等等。
图2所示为根据本发明实施方式的整体结构示意图。
上图2展示了该客户端的主要流程与交互。其主要思路是对于原有GoCD的https接口进行粗粒度封装,并发请求其细粒度接口,达到整合数据的目的。
这里的粗粒度接口是指GoCD提供的模块接口,如管道模块接口、agent模块接口,这些都是大模块的接口,返回的都是整体数据。而细粒度接口是指具体某个属性的接口。本设计将所有GoCD接口进行模块化封装,由模块到属性,由粗粒度到细粒度,层层获取数据。
同时实现,粗粒度间接口可以并发,细粒度接口也支持并发。
对于比较复杂的逻辑,绕过https接口,访问db,直接获取关键数据,达到简易高效的目的。也就是上图最下面的那条线代表的逻辑,由图可见,其没有经过GoCD的对外接口,而直接访问了GoCD自身的数据源。
所谓复杂的逻辑,这里指三类:特别耗时的逻辑请求、数据结构拼接复杂的请求与GoCD自身没提供接口的请求。
对于上述三种难度比较大的数据操作接口,在设计上,绕过GoCD自身的对外接口,直接操作GoCD服务自身的数据库,通过数据库的sql运算,获取相关数据。这样就少了GoCD服务中间的逻辑层运算,大大节省了时间,降低了计算的难度。也就是本服务对外提供的接口,并不完全依赖GoCD自身对外提供的接口,既可以使用其自身接口,也可以直达数据源,编写业务独特的接口。这也是其他客户端所不能支持的。
本发明的技术方案还提供了Python客户端的工作流程,包括:
1、外部程序请求Python客户端,指定需要的具体模块或者模块列表
2、Python客户端的base-manage(基础管理),决定同步或者异步请求GoCD的各个模块
3、base-manager调用各个模块的manager
4、各个模块的manager决定访问https接口或者直接请求DB(数据库)
5、获取请求的并发数据或者同步数据
6、整合数据,转化为json
7、返回数据。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

Claims (6)

1.一种基于GoCD的Python客户端,其特征在于,包括:
功能模块,多个所述功能模块继承对应的基础模块,所述基础模块包括有对接GoCD对应模块的处理函数;
所述客户端对外部请求逻辑进行分析,根据结果对调用对应的所述基础模块和/或直接从数据库调取数据。
2.根据权利要求1所述的基于GoCD的Python客户端,其特征在于,所述功能模块包括线性通信模型管理模块、材料管理模块、用户管理模块、任务步骤管理模块、任务管理模块、代理管理模块、环境管理模块、插件管理模块、模板管理模块及项目管理模块。
3.根据权利要求1所述的基于GoCD的Python客户端,其特征在于,所述处理函数包括:Https的封装和验证、拉取与推送方法、数据下载、数据转换、异步方法及同步方法。
4.根据权利要求1所述的基于GoCD的Python客户端,其特征在于,所述Python客户端具体包括:
若请求逻辑为细粒度或粗粒度访问,则识别逻辑对应需求,通过所述功能模块对GoCD进行访问,其中粗粒度访问为直接访问GoCD模块且返回数据为整体数据的访问,细粒度为具体属性接口;
若请求为复杂逻辑访问,则不经过GoCD的Https接口,直接对GoCD的数据库进行访问并获取数据,其中复杂逻辑包括耗时的逻辑请求、数据结构拼接复杂的请求及GoCD自身没提供接口的请求。
5.根据权利要求4所述的基于GoCD的Python客户端,其特征在于,所述Python客户端还包括:对GoCD进行异步或并发访问。
6.根据权利要求1所述的基于GoCD的Python客户端,其特征在于,所述Python客户端还包括:提供多个开放式接口用于外部数据的访问,所述开放式接口与所述功能模块一一对应。
CN201911323544.0A 2019-12-20 2019-12-20 基于GoCD的Python客户端系统 Active CN111176988B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911323544.0A CN111176988B (zh) 2019-12-20 2019-12-20 基于GoCD的Python客户端系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911323544.0A CN111176988B (zh) 2019-12-20 2019-12-20 基于GoCD的Python客户端系统

Publications (2)

Publication Number Publication Date
CN111176988A true CN111176988A (zh) 2020-05-19
CN111176988B CN111176988B (zh) 2023-07-04

Family

ID=70653994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911323544.0A Active CN111176988B (zh) 2019-12-20 2019-12-20 基于GoCD的Python客户端系统

Country Status (1)

Country Link
CN (1) CN111176988B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5161116A (en) * 1989-02-27 1992-11-03 Dynix System for evaluating the performance of a large scale programmable machine capable of having a plurality of terminals attached thereto
CN101432971A (zh) * 2006-04-28 2009-05-13 诺基亚西门子通信有限责任两合公司 编码数据消息k’用以从发射站向接收站传输的方法以及解码方法、发射站、接收站和软件
CN106250178A (zh) * 2016-07-26 2016-12-21 北京北森云计算股份有限公司 通过多语言云编译实现系统动态功能在线拦截扩展的方法
CN106648932A (zh) * 2016-12-19 2017-05-10 四川长虹电器股份有限公司 基于Python扩展模块的多进程共享系统及方法
CN107480251A (zh) * 2017-08-14 2017-12-15 福建新大陆软件工程有限公司 一种管理数据访问的系统
US20180068271A1 (en) * 2016-09-08 2018-03-08 International Business Machines Corporation Agile team structure and processes recommendation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5161116A (en) * 1989-02-27 1992-11-03 Dynix System for evaluating the performance of a large scale programmable machine capable of having a plurality of terminals attached thereto
CN101432971A (zh) * 2006-04-28 2009-05-13 诺基亚西门子通信有限责任两合公司 编码数据消息k’用以从发射站向接收站传输的方法以及解码方法、发射站、接收站和软件
CN106250178A (zh) * 2016-07-26 2016-12-21 北京北森云计算股份有限公司 通过多语言云编译实现系统动态功能在线拦截扩展的方法
US20180068271A1 (en) * 2016-09-08 2018-03-08 International Business Machines Corporation Agile team structure and processes recommendation
CN106648932A (zh) * 2016-12-19 2017-05-10 四川长虹电器股份有限公司 基于Python扩展模块的多进程共享系统及方法
CN107480251A (zh) * 2017-08-14 2017-12-15 福建新大陆软件工程有限公司 一种管理数据访问的系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ELISUN: "GoCD概念篇" *
知⼦: "php 、 go 、 python http请求(get和post)" *

Also Published As

Publication number Publication date
CN111176988B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
CN111767143B (zh) 交易数据处理方法、装置、设备及系统
CN109643252B (zh) 中间件接口和中间件接口生成器
WO2021018005A1 (zh) 一种跨进程通信方法、装置及设备
CN111625510A (zh) 一种基于云映射的多源数据共享系统及方法
CN111949693B (zh) 一种数据处理装置、数据处理方法、存储介质及电子设备
CN102722540B (zh) 实时内存数据库系统中数据处理方法及装置
US20220179651A1 (en) Smart contract client program generation method, system and device, and medium
CN112667415B (zh) 数据调用方法、装置、可读存储介质及电子设备
CN112417213B (zh) 一种关于VMware自发现监控和实例拓扑自发现方法
CN112243016A (zh) 一种中间件平台、终端设备、5g人工智能云处理系统及处理方法
CN104731564A (zh) 系统接口调用记录的生成方法和装置
CN110764769B (zh) 处理用户请求的方法和装置
CN111176988A (zh) 基于GoCD的Python客户端
CN113568603B (zh) 组件对象创建及接口方法调用方法、终端及存储装置
CN113515306B (zh) 一种系统移植的方法及装置
CN108769249A (zh) iOS高性能高扩展网络架构及实现方法、服务器及介质
CN110309365B (zh) 一种基于Mybatis实现的openstack数据查询方法与装置
CN107818122A (zh) 一种代理组件、搜索管理方法及搜索管理系统
CN114363172B (zh) 用于容器组的解耦管理方法、装置、设备、介质
CN114816579B (zh) 一种基于工业互联网平台的SaaS化工业APP接入方法
US20230100587A1 (en) Remote datasource-based optimization of procedure-based multi-datasource queries
US20240202207A1 (en) Distributed function data transformation system
US11966719B2 (en) Event consumption for high-level programing language platform
US20230289354A1 (en) Endpoint scan and profile generation
US20240129365A1 (en) Implementing a target block command on an unstructured data storage node

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
CB02 Change of applicant information

Address after: 519080 Room 102, 202, 302, 402 Room 327 Room 102, 202 Room 329 Room 302, 325 Qiandao Ring Road, Tangjiawan Town, High-tech Zone, Zhuhai City, Guangdong Province

Applicant after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Address before: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Applicant before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant