Jenkins构建等待下一个可用执行程序挂起的时间

时间:2018-01-30 12:36:17

标签: jenkins

我需要获取构建触发的确切时间(build periodically选项当前正在使用)。由于配置,只有3个任务可以并行运行。考虑现在并行运行3个任务。因此执行者将把下一个任务放在Waiting for the next available Executor状态。所以我需要访问这个等待时间或者确切地说它是在启动时,因为日期意味着它被触发。
我也使用了Build Timestamp Plugin。但没用。它给出了构建步骤开始的时间。所以有人可以帮我这么做吗?感谢。

1 个答案:

答案 0 :(得分:0)

我找到了一个现在要分享的解决方案。如果有人处于相同的情况,这可能会对他们有所帮助。

build_details = get('http://localhost:8080/jenkins/job/<jobName>/api/xml?tree=builds[id,queueId]&xpath=//build[id=<buildId>]')
queueId = build_details['build']['queueId']
queue_details = get('http://localhost:8080/jenkins/queue/item/<queueId>/api/json')
job_queued_time = Time.at(queue_details['inQueueSince'] / 1000.0).to_time.utc

Note:我发布了伪代码,而不是完整的解决方案。您必须将其移植到您的语言。 <jobName><buildId><queueId>是变量,请替换它们。

这里,localhost:8080对于每个人都是相同的,因为这将在Jenkins机器本身中运行。通常,我的解决方案适用于单节点Jenkins(即No master-slave体系结构)。我尚未在master-slave中对其进行过测试。