2014-09-19 91 views
0

當我使用cloudify(2.7)部署應用程序,它模塊主要包括兩個服務(如服務A dependsOn服務B),這裏是APP-application.groovycloudify服務dependsOn其他服務

application { 
    name "app" 

    service { 
     name = "B" 
    } 

    service { 
     name = "A" 
     dependsOn = [ "B" ] 
    } 
} 

當服務B有2個實例,其中一個服務B實例可用,服務A開始調用啓動事件,但服務A依賴於服務B的所有實例,它是否有一些配置來解決它?

回答

0

複製我的回答從https://groups.google.com/forum/#!topic/cloudify-developers/TZzwfzY-rLY:在Cloudify 2.7

的默認行爲是啓動服務,一旦有所有的服務中至少具有一個運行實例這取決於。 如果您希望等待其他服務(或其他某個依賴性邏輯)的所有實例,則應在生命週期腳本中實施此操作。您可以訪問的使用服務上下文API其他服務的狀態: http://getcloudify.org/guide/2.7/developing/the_service_context_api.html

例如,您可以添加使用waitForInstances()API等待所需數量的情況下的「預裝」事件。請注意,此API可讓您訪問尚未啓動的實例。你可以通過調用檢查實例的當前狀態:

serviceInstance.getMonitors(「USM_State」)

USM_State的可能值是可在這裏: https://github.com/CloudifySource/cloudify/blob/master/dsl/src/main/java/org/cloudifysource/dsl/internal/CloudifyConstants.java#L35

所以2的值表示運行實例。

+0

這是非常有用的感謝 – chaoluo 2014-09-30 08:09:51