我目前正在使用Phing处理并行多节点部署脚本,并且需要了解特定目标(如果已经调用过它)。
目标列表长度因节点类型而异(假设分段有三台服务器,生产十台),我们已经并行执行了目标。部署完所有机器后,我需要更新(单个)数据库服务器。有没有办法检查其他线程尚未调用/执行的特定目标?
示例:
<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中,但这不是一个优雅的解决方案。
注意:数据库通过其中一个服务器通过特定代码(部署在每台服务器上)进行更新,而不是直接更新。