Interface SupervisingRouteController

All Superinterfaces:
AutoCloseable, CamelContextAware, HasCamelContext, RouteController, Service, StaticService

public interface SupervisingRouteController extends RouteController
A supervising capable RouteController that delays the startup of the routes after the camel context startup and takes control of starting the routes in a safe manner. This controller is able to retry starting failing routes, and have various options to configure settings for backoff between restarting routes.
  • Method Details

    • getIncludeRoutes

      String getIncludeRoutes()
    • setIncludeRoutes

      void setIncludeRoutes(String includeRoutes)
      Pattern for filtering routes to be included as supervised. The pattern is matching on route id, and endpoint uri for the route. Multiple patterns can be separated by comma. For example to include all kafka routes, you can say kafka:*. And to include routes with specific route ids myRoute,myOtherRoute. The pattern supports wildcards and uses the matcher from org.apache.camel.support.PatternHelper#matchPattern.
    • getExcludeRoutes

      String getExcludeRoutes()
    • setExcludeRoutes

      void setExcludeRoutes(String excludeRoutes)
      Pattern for filtering routes to be excluded as supervised. The pattern is matching on route id, and endpoint uri for the route. Multiple patterns can be separated by comma. For example to exclude all JMS routes, you can say jms:*. And to exclude routes with specific route ids mySpecialRoute,myOtherSpecialRoute. The pattern supports wildcards and uses the matcher from org.apache.camel.support.PatternHelper#matchPattern.
    • getThreadPoolSize

      int getThreadPoolSize()
    • setThreadPoolSize

      void setThreadPoolSize(int threadPoolSize)
      The number of threads used by the scheduled thread pool that are used for restarting routes. The pool uses 1 thread by default, but you can increase this to allow the controller to concurrently attempt to restart multiple routes in case more than one route has problems starting.
    • getInitialDelay

      long getInitialDelay()
    • setInitialDelay

      void setInitialDelay(long initialDelay)
      Initial delay in milli seconds before the route controller starts, after CamelContext has been started.
    • getBackOffDelay

      long getBackOffDelay()
    • setBackOffDelay

      void setBackOffDelay(long backOffDelay)
      Backoff delay in millis when restarting a route that failed to startup.
    • getBackOffMaxDelay

      long getBackOffMaxDelay()
    • setBackOffMaxDelay

      void setBackOffMaxDelay(long backOffMaxDelay)
      Backoff maximum delay in millis when restarting a route that failed to startup.
    • getBackOffMaxElapsedTime

      long getBackOffMaxElapsedTime()
    • setBackOffMaxElapsedTime

      void setBackOffMaxElapsedTime(long backOffMaxElapsedTime)
      Backoff maximum elapsed time in millis, after which the backoff should be considered exhausted and no more attempts should be made.
    • getBackOffMaxAttempts

      long getBackOffMaxAttempts()
    • setBackOffMaxAttempts

      void setBackOffMaxAttempts(long backOffMaxAttempts)
      Backoff maximum number of attempts to restart a route that failed to startup. When this threshold has been exceeded then the controller will give up attempting to restart the route, and the route will remain as stopped.
    • getBackOffMultiplier

      double getBackOffMultiplier()
    • setBackOffMultiplier

      void setBackOffMultiplier(double backOffMultiplier)
      Backoff multiplier to use for exponential backoff. This is used to extend the delay between restart attempts.
    • setUnhealthyOnExhausted

      void setUnhealthyOnExhausted(boolean unhealthyOnExhausted)
      Whether to mark the route as unhealthy (down) when all restarting attempts (backoff) have failed and the route is not successfully started and the route manager is giving up. Setting this to true allows health checks to know about this and can report the Camel application as DOWN. The default is false.
    • isUnhealthyOnExhausted

      boolean isUnhealthyOnExhausted()
      Whether to mark the route as unhealthy (down) when all restarting attempts (backoff) have failed and the route is not successfully started and the route manager is giving up. Setting this to true allows health checks to know about this and can report the Camel application as DOWN. The default is false.
    • getRestartingRoutes

      Collection<Route> getRestartingRoutes()
      Return the list of routes that are currently under restarting by this controller. In other words the routes which has failed during startup and are know managed to be restarted.
    • getExhaustedRoutes

      Collection<Route> getExhaustedRoutes()
      Return the list of routes that have failed all attempts to startup and are now exhausted.
    • getNonControlledRouteIds

      Set<String> getNonControlledRouteIds()
      Returns the route ids of routes which are non controlled (such as routes that was excluded)
    • getRestartingRouteState

      org.apache.camel.util.backoff.BackOffTimer.Task getRestartingRouteState(String routeId)
      Gets the state of the backoff for the given route if its managed and under restarting.
      Parameters:
      routeId - the route id
      Returns:
      the state, or null if the route is not under restarting
    • getRestartException

      Throwable getRestartException(String routeId)
      Gets the last exception that caused the route to not startup for the given route
      Parameters:
      routeId - the route id
      Returns:
      the caused exception