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
    • Field Summary

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

        DEFAULT_PHASE
    • Constructor Detail

      • ContainerGroupSequencer

        public ContainerGroupSequencer​(ListenerContainerRegistry 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.
      • isAutoStartup

        public boolean isAutoStartup()
        Specified by:
        isAutoStartup in interface org.springframework.context.SmartLifecycle
      • setAutoStartup

        public void setAutoStartup​(boolean autoStartup)
        Set to false to not automatically start.
        Parameters:
        autoStartup - false to not start;
        Since:
        2.7.6
      • getPhase

        public int getPhase()
        Specified by:
        getPhase in interface org.springframework.context.Phased
        Specified by:
        getPhase in interface org.springframework.context.SmartLifecycle
      • setPhase

        public void setPhase​(int phase)
        Set the SmartLifecycle.getPhase().
        Parameters:
        phase - the phase.
        Since:
        2.7.6
      • 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