Service Notification

The ServiceNotificationEvent is used to monitor all services in the Cloud.

Methods

  1. getNodeId() Returns the ID of the node.

  2. getServiceId() Returns the ID of the service.

  3. getServiceState() Returns the state of the service.

  4. getTemplateId() Returns the template ID of the service's template.

  5. getTemplateName() Returns the templae name of the service's template.

# Available service states
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