2014-09-19 3 views
0

Когда я использую cloudify (2.7) для развертывания приложения, это станы две услуг (например, услуга dependsOn службы B), здесь это приложение-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

Например, вы могли бы добавить событие «Preinstall», который использует 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

 Смежные вопросы

  • Нет связанных вопросов^_^