GoCD无法轮询更改

GoCD服务器轮询所有“Auto Triggered”管道材料的更改。 默认情况下,轮询每分钟发生一次,十次发生。 轮询间隔和要同时轮询的物料数量是可配置的。

GoCD使用SCM命令来轮询更改。 例如,要检查SVN存储库中的任何新更改,请使用以下命令:

svn log --non-interactive --xml -v -r HEAD:'revision' 'repository-URL'

GoCD服务器使用的SCM命令可以挂起而不输出。 无效的配置,网络问题,控制台输入块是造成这种情况的一些原因。 这种情况会导致管道调度延迟并导致性能下降

服务器健康中的警告通知用户这种情况; 单击时显示类似于下面的消息。

我该怎么处理这些信息

当你看到类似上面的警告信息时

  • 识别作为GoCD Server的子项运行的进程

    在Windows上,您可以使用Process Explorer之类的工具。在linux上,你可以运行'ps waux | grep'材料类型"

  • 确定挂起的过程。警告信息中的URL:“https://test@bitbucket.org/test/git_repo.git”等额外信息可以帮助您解决这个问题。
  • 在linux系统上,你应该看到如下这些行:

    go 31201 1  0 Feb07 ?  00:00:00 git clone https://test@bitbucket.org/test/git_repo.git /var/lib/cruise-server/pipelines/flyweight/b9ec0885-eb32-458c-bd6b-eeefe3ef9816
    
  • 杀死进程及其所有子进程(整个进程树)。

  • 确保警告消息远离服务器健康。

    请注意OS进程列表中的文件夹名称(形式为.../flyweight/b9ec0885-eb32-458c-bd6b-eeefe3ef9816)。该文件夹正在被轮询命令使用。在GoCD安装中找到该文件夹​​,如果存在,将其删除。这确保了杀死进程树并没有留下任何不一致的信息。

配置警告时间

  • GoCD服务器等待15分钟(没有输出),然后警告用户可能会挂起材料更新。 用户可以使用系统属性修改此等待时间:'material.update.inactive.timeout'。
  • 在GoCD服务器的Linux安装中,将以下行添加到/etc/default/go-server。

    export GO_SERVER_SYSTEM_PROPERTIES='-Dmaterial.update.inactive.timeout=20'
    

    以上配置将GoCD服务器用于确定是否可能挂起材料更新的时间设置为20分钟。

  • 在Windows上,将以下行添加到GoCD服务器安装的config文件夹中的wrapper-properties.conf文件中,其中xwrapper-server.confwrapper-properties.conf中的最大数字组合在一起。

    wrapper.java.additional.x='-Dmaterial.update.inactive.timeout=20'
    

    以上配置将GoCD服务器用于确定是否可能挂起材料更新的时间设置为20分钟。

results matching ""

    No results matching ""