
技术摘要:
本发明涉及软件开发技术领域,公开了一种远程调度Jenkins的方法及装置,即先向Jenkins服务器发送任务Job构建请求消息,其中,所述任务Job构建请求消息用于请求所述Jenkins服务器构建任务Job,并在所述任务Job执行完成后反馈对应的任务Job执行结果;若在预设时长内,未 全部
背景技术:
软件的敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件 开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过 测试,具备可视、可集成和可运行使用的特征。换而言之,就是把一个大项目分为多个相互 联系且也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。因为开 发部门同时维护多个版本,而多个版本的发布及测试需要大量人力,所以要有一个专业的 持续集成工具来管理持续重复的工作。 作为持续集成工具Hudson的一个重要分支,Jenkins是一款基于Java开发的且被 广泛用于软件持续化集成的开源工具,由于其旨在提供一个开放易用的软件平台,能够使 软件的持续集成变成可能,因而主要用于持续、自动的构建/测试软件项目,以及监控外部 任务的运行。为了方便用户远程调用,Jenkins本身提供了应用程序接口(Application Programming Interface,API)接口,可以实现构建任务Job和自动化触发任务Job执行的目 的。 当前,通过调度Jenkins来完成构建/测试软件项目的方式,主要有如下两种: (1)基于Jenkins提供的且用于构建任务Job的API,利用其中的各种工具(如命令 行下载工具curl,其为一种利用URL语法在命令行下工作的文件传输工具)进行远程调用, 但是这种方式在成功触发任务Job构建后即会结束流程,而不会等到被构建的任务Job完全 执行完后才结束,如此将无法拿到任务Job执行的最终结果,导致不能达成软件测试等目 的,适用范围受限; (2)通过Python(一种开源的脚本语言)三方库jenkinsapi(Python的三方扩展包, 用于远程管理Jenkins)提供的构建函数(如jenkinsapi.job.Job.invoke)可实现远程构建 任务Job和自动化触发任务Job执行的目的,前述远程构建是指在将任务Job的统一资源定 位符(Uniform Resource Locator,URL)复制到其它电子设备上后,只要在该电子设备上打 开这个URL就相当于给Jenkins服务器发送了一个构建请求,进而触发任务Job的构建及执 行,这种方式虽然可以等到被构建的任务Job完全执行完才结束流程,但是如果Jenkins服 务器侧的任务Job因为某种特殊原因(如卡死等情况)一直没有执行完,目前的流程会继续 等待执行结果而不会自动超时退出,导致请求终端白白耗费资源及时间,无法及时感知调 度进程已出现阻塞的问题。 上述两种现有调度Jenkins的流程图均可简化地如图1所示,它们所面临的共同问 题可总结为:对于远程构建任务Job且需要拿到任务Job执行结果的调度进程,终端设备缺 乏在时间上的控制,导致当服务器侧出现卡死等意外情况时,不能及时终止调度进程,影响 了软件开发的正常开展。 4 CN 111552579 A 说 明 书 2/10 页
技术实现要素:
为了解决现有技术在调度Jenkins时所存在的因无时间控制而容易导致无法及时 终止调度进程的问题,本发明目的在于提供一种远程调度Jenkins的方法、装置、计算机设 备及计算机可读存储介质。 第一方面,本发明提供了一种远程调度Jenkins的方法,包括: 向Jenkins服务器发送任务Job构建请求消息,其中,所述任务Job构建请求消息用 于请求所述Jenkins服务器构建任务Job,并在所述任务Job执行完成后反馈对应的任务Job 执行结果; 若在预设时长内,未接收到所述任务Job执行结果,则结束等待所述任务Job执行 结果。 基于上述