Class ContainerGroupSequencer
java.lang.Object
org.springframework.kafka.listener.ContainerGroupSequencer
- All Implemented Interfaces:
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 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 Summary
ConstructorsConstructorDescriptionContainerGroupSequencer(ListenerContainerRegistry registry, long defaultIdleEventInterval, String... containerGroups) Set containers in each group to not auto start. -
Method Summary
Modifier and TypeMethodDescriptionintgetPhase()voidbooleanbooleanvoidvoidsetApplicationContext(org.springframework.context.ApplicationContext applicationContext) voidsetAutoStartup(boolean autoStartup) Set to false to not automatically start.voidsetPhase(int phase) Set theSmartLifecycle.getPhase().voidsetStopLastGroupWhenIdle(boolean stopLastGroupWhenIdle) Set to true to stop the containers in the final group when they go idle.voidstart()voidstop()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.context.SmartLifecycle
stop
-
Constructor Details
-
ContainerGroupSequencer
public ContainerGroupSequencer(ListenerContainerRegistry registry, long defaultIdleEventInterval, 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 Details
-
setApplicationContext
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException - Specified by:
setApplicationContextin interfaceorg.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:
isAutoStartupin interfaceorg.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:
getPhasein interfaceorg.springframework.context.Phased- Specified by:
getPhasein interfaceorg.springframework.context.SmartLifecycle
-
setPhase
public void setPhase(int phase) Set theSmartLifecycle.getPhase().- Parameters:
phase- the phase.- Since:
- 2.7.6
-
onApplicationEvent
- Specified by:
onApplicationEventin interfaceorg.springframework.context.ApplicationListener<ListenerContainerIdleEvent>
-
start
public void start()- Specified by:
startin interfaceorg.springframework.context.Lifecycle
-
initialize
public void initialize() -
stop
public void stop()- Specified by:
stopin interfaceorg.springframework.context.Lifecycle
-
isRunning
public boolean isRunning()- Specified by:
isRunningin interfaceorg.springframework.context.Lifecycle
-