1

我目前正在使用 Phing 处理并行多节点部署脚本,并且需要知道特定目标是否已被调用。

目标列表长度因节点类型而异(假设登台有 3 台服务器和 10 台生产服务器),并且我们已经有并行执行的目标。部署完所有机器后,我需要更新(单个)数据库服务器。有没有办法检查它没有被另一个线程调用/执行的特定目标?

例子:

    <target name="run">
      <property name="host" value="10.0.0.1, 10.0.0.2, etc..."/>
      <parallelforeach list="${host}" param="host" target="execDeploy" delimiter=", "/>
    </target>

    <target name="execDeploy">
      <!-- do some deploy -->
      <phincall name="execOnce"/>
    </target>

    <!-- update DB -->
    <target name="execOnce"/>

有没有办法做到这一点?

编辑

我可以将第一个 IP 地址添加到我的 build.properties,但这不是一个优雅的解决方案。

注意:数据库是通过特定代码(部署在每台服务器上)通过其中一个服务器而不是直接更新的。

4

0 回答 0