Class HeartbeatListener

All Implemented Interfaces:
NotificationIndexCleanup.Listener, NotificationListener, Configurable

public class HeartbeatListener extends DefaultNotificationListener
Heartbeat Listener stores heartbeat messages and writes them to a heartbeat file when a product is received
  • Field Details

    • HEARTBEAT_FILENAME_PROPERTY

      public static final String HEARTBEAT_FILENAME_PROPERTY
      Configurable property for heartbeat fully qualified directory+filename.
      See Also:
    • DEFAULT_HEARTBEAT_FILENAME

      public static final String DEFAULT_HEARTBEAT_FILENAME
      Default heartbeat directory.
      See Also:
    • DEFAULT_STORAGE_TIMEOUT

      public static final String DEFAULT_STORAGE_TIMEOUT
      Default timeout for HeartbeatStatus key/value pairs. Zero = disabled
      See Also:
    • DEFAULT_CLEANUP_INTERVAL

      public static final String DEFAULT_CLEANUP_INTERVAL
      Default schedule interval for HeartbeatStatus key/value pairs cleanup. 30 minutes
      See Also:
    • HEARTBEAT_TIMEOUT_PROPERTY

      public static final String HEARTBEAT_TIMEOUT_PROPERTY
      Configurable property for heartbeat key/value expiration
      See Also:
  • Constructor Details

    • HeartbeatListener

      public HeartbeatListener() throws Exception
      Create a new HeartbeatListener. Sets up the includeTypes list to contain "heartbeat".
      Throws:
      Exception - if error occurs
  • Method Details

    • getHeartbeats

      protected static Map<String,HeartbeatStatus> getHeartbeats()
      Returns:
      map of component and heartbeat status.
    • onProduct

      public void onProduct(Product product) throws Exception
      heartbeat onProduct processing writes to heartbeat file
      Overrides:
      onProduct in class DefaultNotificationListener
      Parameters:
      product - a product whose notification was accepted.
      Throws:
      Exception - if error occurs
    • sendHeartbeatMessage

      public static void sendHeartbeatMessage(String component, String key, String value)
      Send heartbeat data to heartbeat listener
      Parameters:
      component - String component
      key - Heartbeat key
      value - Heartbeat value
    • writeHeartbeat

      public boolean writeHeartbeat() throws IOException
      Write heartbeat data for all components to the heartbeat file
      Returns:
      true
      Throws:
      IOException - if IO error occurs
    • configure

      public void configure(Config config) throws Exception
      Self-configure HeartbeatListener object
      Specified by:
      configure in interface Configurable
      Overrides:
      configure in class DefaultNotificationListener
      Parameters:
      config - the Config object with settings.
      Throws:
      Exception - if configuration exceptions occur.
    • formatHeartbeatOutput

      public String formatHeartbeatOutput()
      Returns:
      JSON-formatted output from the map of components and their values
    • cleanup

      public void cleanup() throws Exception
      purge heartbeat key/values older than storageTimeout, also purging empty heartbeats
      Overrides:
      cleanup in class DefaultNotificationListener
      Throws:
      Exception - if could not create new notificationCleanup
    • getHeartbeatFile

      public File getHeartbeatFile()
      Returns:
      heartbeatFile
    • setHeartbeatFile

      public void setHeartbeatFile(File heartbeatFile)
      Parameters:
      heartbeatFile - to set
    • getStorageTimeout

      public long getStorageTimeout()
      Returns:
      storageTimeout
    • setStorageTimeout

      public void setStorageTimeout(long storageTimeout)
      Parameters:
      storageTimeout - to set