【问题标题】:how to check if the hudson is busy or not?如何检查哈德逊是否忙?
【发布时间】:2011-07-11 12:08:54
【问题描述】:

如何检查 hudson 是否忙?这意味着我想检查它当前是否正在执行任何构建。

目前正在使用以下东西:

    if(lastBuild == lastCompletedBuild){
        // hudson is free
    }
    else{
      //hudson is busy
   }

这是一个正确的逻辑吗?如果机器在上次构建更新后重新启动/崩溃而 lastCompletedbuild 没有更新怎么办?

有没有公开的API可以直接使用?

【问题讨论】:

  • 您需要添加更多相关标签。我什至不知道Hudson是什么,如果它与java有关,那么将java标签添加到您的帖子中。没有相关标签,人们不会找到您的帖子。
  • @Caimen :查看哈德森@hudson-ci.org
  • 我假设您正在编写 java 代码,所以我将 java 标记添加到您的帖子中。然而,仅仅因为您试图检测 Hudon 的状态并不一定意味着您正在编写 java.util.详细信息...我们需要它们。
  • 您是否有权访问正在运行构建的机器?
  • @akshay:这段代码在哪里执行?

标签: java hudson jenkins


【解决方案1】:

如果您想查看构建队列中当前有哪些项目,可以向http://your.hudson.server/hudson/queue/api/[xml|json] 提出请求。

【讨论】:

    【解决方案2】:

    Hudson's API

    具体来说:您可以将/api/[xml|json] 添加到 Hudson 中的任何路径以获取该页面的机器可读数据。例如hudsonserver:8080/api/xml 将返回作业列表及其当前状态。

    然而,真正的问题是这段代码在哪里执行?上面有lastBuildlastCompletedBuild,但是这些变量是在哪里设置的?

    【讨论】:

    【解决方案3】:

    您可以尝试查询separate API 上提供的负载统计信息

    <overallLoadStatistics>
      <busyExecutors></busyExecutors>
      <queueLength></queueLength>
      <totalExecutors></totalExecutors>
      <totalQueueLength></totalQueueLength>
    </overallLoadStatistics>
    

    【讨论】:

      【解决方案4】:

      您是否对当前是否正在构建特定工作感兴趣?在这种情况下:

      http://[hudson-host-and-path]/job/[job-name]/lastBuild/api/xml
      

      如果当前正在进行构建,则将标签 &lt;building&gt; 设置为 true

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-24
        • 1970-01-01
        • 1970-01-01
        • 2010-12-22
        • 2011-09-21
        • 1970-01-01
        • 2018-03-21
        • 2011-11-07
        相关资源
        最近更新 更多