Skip to content
Advertisement

Spring retry – Thread interruption handling

I am using spring-retry v1.3.1 with @Retryable annotation and I have a few questions on its behaviour. Let’s say that in my spring boot application I have a retry configuration that makes my application wait 1 hour before retrying. If my application is killed (for example by kubernetes) while it was waiting in order to do a retry is there a way to catch it and do some operations before shutting down (logging for example)? Also I’m not sure how spring-retry is using threads, if I end up with many retry attempts is there a risk that it blocks the application because of too many threads? Is there a way to give a dedicate thread pool to retryable?

Advertisement

Answer

When interrupted, a BackOffInterruptedException is thrown to the caller so you can catch that.

spring-retry itself does not manage threads; that’s up to you.

It is completely thread-based so, yes, you can end up with many suspended threads unless you manage the work with, for example, a ThreadPoolTaskExecutor.

User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement