有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从Jenkins REST API获取所有作业的所有构建的构建细节

我有一个托管的Jenkins服务器,从那里,我试图使用Jenkins REST API获取所有作业的构建细节(如结果、时间戳、持续时间等),然后将其保存在我的数据库中

现在,我正在从Java代码中调用以下API,以获取所有作业(大约200个作业):

https://<JENKINS_HOST>/api/json

然后,我使用以下方法获取作业详细信息和每个作业的所有构建:

https://<JENKINS_HOST>/job/MY_JOB/api/json

最后,对于每个构建(我必须只获取最后50个),我必须调用此函数来获取构建细节:

https://<JENKINS_HOST>/job/MY_JOB/<BUILD_NUMBER>/api/json

所以总共有50*200+201=超过10000个API调用

我猜,这么多API调用会让Jenkins服务器运行缓慢吗

所以,我的问题是,有没有一种更快/更优化的方法来做到这一点,这样我就不必进行这么多API调用

比如,我可以使用一个url获取所有构建细节,如下所示: (假设)

https://<JENKINS_HOST>/job/MY_JOB/api/json?fetchAllbuildDetails=True


共 (1) 个答案

  1. # 1 楼答案

    如果其他人也遇到同样的问题,我可以通过树来完成:

    https://<JENKINS_HOST>/api/json?tree=jobs[name,url,builds[number,result,duration,url]]
    

    在这里,可以过滤列名,只获取所需的数据,因为从中返回的数据量非常大

    您还可以这样限制要提取的记录数:

    https://<JENKINS_HOST>/api/json?tree=jobs[name,url,builds[number,result,duration,url]{0,50}]
    

    这将只获取所有作业的最后50个版本,这正是我所需要的