Created
December 10, 2025 08:49
-
-
Save igormq/f6dfaba6b53e0b58dbfb4363d94adb8e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @Configuration | |
| @Slf4j | |
| public class NonPauseableSqsConfig { | |
| @Bean | |
| static BeanPostProcessor nonPauseableListenerContainerRegistryPostProcessor() { | |
| return new BeanPostProcessor() { | |
| @Override | |
| public Object postProcessAfterInitialization(Object bean, String beanName) { | |
| if (bean instanceof DefaultListenerContainerRegistry registry) { | |
| return new NonPauseableListenerContainerRegistry(registry); | |
| } | |
| return bean; | |
| } | |
| }; | |
| } | |
| static class NonPauseableListenerContainerRegistry implements MessageListenerContainerRegistry, SmartLifecycle { | |
| private final DefaultListenerContainerRegistry delegate; | |
| NonPauseableListenerContainerRegistry(DefaultListenerContainerRegistry delegate) { | |
| this.delegate = delegate; | |
| } | |
| @Override | |
| public boolean isPauseable() { | |
| return false; // This is the key! | |
| } | |
| // Delegate SmartLifecycle methods | |
| @Override | |
| public void start() { | |
| delegate.start(); | |
| } | |
| @Override | |
| public void stop() { | |
| delegate.stop(); | |
| } | |
| @Override | |
| public void stop(Runnable callback) { | |
| delegate.stop(callback); | |
| } | |
| @Override | |
| public boolean isRunning() { | |
| return delegate.isRunning(); | |
| } | |
| @Override | |
| public int getPhase() { | |
| return delegate.getPhase(); | |
| } | |
| @Override | |
| public boolean isAutoStartup() { | |
| return delegate.isAutoStartup(); | |
| } | |
| @Override | |
| public void registerListenerContainer(MessageListenerContainer<?> listenerContainer) { | |
| delegate.registerListenerContainer(listenerContainer); | |
| } | |
| // Delegate MessageListenerContainerRegistry methods | |
| @Override | |
| public Collection<MessageListenerContainer<?>> getListenerContainers() { | |
| return delegate.getListenerContainers(); | |
| } | |
| @Override | |
| public MessageListenerContainer<?> getContainerById(String id) { | |
| return delegate.getContainerById(id); | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment