Class ContainerGroupSequencer

  • All Implemented Interfaces:
    java.util.EventListener, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener<ListenerContainerIdleEvent>, org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle

    public class ContainerGroupSequencer
    extends java.lang.Object
    implements org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener<ListenerContainerIdleEvent>, org.springframework.context.SmartLifecycle
    Sequence the starting of container groups when all containers in the previous group are idle.
    Since:
    2.7.3
    Author:
    Gary Russell
    • Field Summary

      • Fields inherited from interface org.springframework.context.SmartLifecycle

        DEFAULT_PHASE
    • Constructor Detail

      • ContainerGroupSequencer

        public ContainerGroupSequencer​(KafkaListenerEndpointRegistry registry,
                                       long defaultIdleEventInterval,
                                       java.lang.String... containerGroups)
        Set containers in each group to not auto start. Start the containers in the first group. Start containers in group[n] when all containers in group[n-1] are idle; stop the containers in group[n-1].
        Parameters:
        registry - the registry.
        defaultIdleEventInterval - the idle event interval if not already set.
        containerGroups - The list of container groups, in order.
    • Method Detail

      • setApplicationContext

        public void setApplicationContext​(org.springframework.context.ApplicationContext applicationContext)
                                   throws org.springframework.beans.BeansException
        Specified by:
        setApplicationContext in interface org.springframework.context.ApplicationContextAware
        Throws:
        org.springframework.beans.BeansException
      • setStopLastGroupWhenIdle

        public void setStopLastGroupWhenIdle​(boolean stopLastGroupWhenIdle)
        Set to true to stop the containers in the final group when they go idle. By default, the containers in the final group remain running.
        Parameters:
        stopLastGroupWhenIdle - true to stop containers in the final group.
      • start

        public void start()
        Specified by:
        start in interface org.springframework.context.Lifecycle
      • initialize

        public void initialize()
      • stop

        public void stop()
        Specified by:
        stop in interface org.springframework.context.Lifecycle
      • isRunning

        public boolean isRunning()
        Specified by:
        isRunning in interface org.springframework.context.Lifecycle