Groovy cloudify服务依赖于其他服务

Groovy cloudify服务依赖于其他服务,groovy,cloudify,Groovy,Cloudify,当我使用cloudify(2.7)部署应用程序时,它包括两个服务(例如服务A依赖于服务B),下面是app-application.groovy application { name "app" service { name = "B" } service { name = "A" dependsOn = [ "B" ] } } 当服务B有2个实例时,服务B的一个实例可用,服务A开始调用启动事件,但服务A

当我使用cloudify(2.7)部署应用程序时,它包括两个服务(例如服务A依赖于服务B),下面是app-application.groovy

application {
    name "app"

    service {
        name = "B"
    }

    service {
        name = "A"
        dependsOn = [ "B" ]
    }
}
当服务B有2个实例时,服务B的一个实例可用,服务A开始调用启动事件,但服务A依赖于服务B的所有实例,它是否有一些配置来解决此问题?

从以下位置复制我的答案:

Cloudify 2.7中的默认行为是在至少有一个服务所依赖的所有服务的运行实例时启动服务。 如果您想等待另一个服务的所有实例(或某些其他依赖逻辑),您应该在生命周期脚本中实现这一点。您可以使用服务上下文API访问其他服务的状态:

例如,您可以添加一个“预安装”事件,该事件使用waitForInstances()API等待所需数量的实例。请注意,此API允许您访问可能尚未启动的实例。您可以通过调用以下命令来检查实例的当前状态:

getMonitors(“USM_状态”)

USM_状态的可能值如下所示:

因此,值2表示一个正在运行的实例