Sum*_*mit 10 java rest jenkins
我有一个托管的 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
Sum*_*mit 17
万一其他人遇到同样的问题,我可以使用树完成此操作:
https://<JENKINS_HOST>/api/json?tree=jobs[name,url,builds[number,result,duration,url]]
Run Code Online (Sandbox Code Playgroud)
在这里,可以过滤列名以仅获取您需要的数据,因为由此返回的数据量很大。
您还可以像这样限制要获取的记录数:
https://<JENKINS_HOST>/api/json?tree=jobs[name,url,builds[number,result,duration,url]{0,50}]
Run Code Online (Sandbox Code Playgroud)
这将仅获取所有作业的最后 50 个构建,这正是我所需要的。
归档时间: |
|
查看次数: |
9244 次 |
最近记录: |