The Service Context API
The Service Context API提供在生命周期事件处理程序中可以访问所有和特定服务实例
从事件程序中获取Service Context
使用theServiceContextFactory类来获取Service Context,例如:
import org.cloudifysource.dsl.context.ServiceContextFactory; def context = ServiceContextFactory.getServiceContext() |
获取到service context后,使用waitForService方法来访问服务实例,例如:
def serviceName = "cassandra" def service = context.waitForService(serviceName, 20, TimeUnit.SECONDS) |
也可以使用context.serviceName来获取服务实例
服务的方法
服务对象提供下列方法:
public String getName(); public int getNumberOfPlannedInstances(); public int getNumberOfActualInstances(); public ServiceInstance[] waitForInstances(final int howmany, final long timeout, final TimeUnit timeUnit); public ServiceInstance[] getInstances(); |
服务实例的方法
服务实例对象可以使用服务对象的 getInstances()方法来获取。
获取当前实例ID context.getInstanceId().
服务实例对象提供下列方法:
public int getInstanceID(); public String getHostAddress(); public String getHostName();
//Invoke a custom command public void invoke(String commandName);
//get the service instances detail public Object getDetails(String serviceDetailsKey);
//get the service instance monitor public Object getMonitors(String serviceMonitorsKey); |