Service Notification
The ServiceNotificationEvent
is used to monitor all services in the Cloud.
Methods
getNodeId()
Returns the ID of the node.getServiceId()
Returns the ID of the service.getServiceState()
Returns the state of the service.getTemplateId()
Returns the template ID of the service's template.getTemplateName()
Returns the templae name of the service's template.
REQUESTED, PREPARING, CPU_BUSY, STARTING, RUNNING, IN_USE, OFFLINE
Code example
@Eventable
public void handle(ServiceNotificationEvent event) {
ServiceState serviceState = ServiceState.valueOf(event.getServiceState());
final String templateName = event.getTemplateName();
final String serviceId = event.getServiceId().substring(0, 5);
final String nodeId = event.getNodeId() == null ? "Unknown" : event.getNodeId().substring(0, 5);
switch (serviceState) {
case REQUESTED -> broadcast("Service %s-%s has been queued".formatted(templateName, serviceId));
case STARTING -> broadcast("Service %s-%s is now starting on Node-%s".formatted(templateName, serviceId, nodeId));
case RUNNING -> broadcast("Service %s-%s is now running on Node-%s".formatted(templateName, serviceId, nodeId));
case OFFLINE -> broadcast("Service %s-%s is now stopping on Node-%s".formatted(templateName, serviceId, nodeId));
}
}
Last updated