I have a pretty common pattern in the redelivery pattern in my routes, and it would be nice if the RedeliveryPolicy supported it directly. I was going to create a JIRA for it, but I wanted to get some feedback to see if others felt it would be a useful/worthwhile addition.
When I setup redelivery for my routes, I’m often setting them up to “retry forever” so I don’t drop messages if destinations are down - nothing special here. However, the external systems are often down for extended periods of time so I can wind up with a LOT of log messages for the retry attempts. I want some of the retry attempts logged so I know the redelivery attempt is going on, but I don’t need the log message every 15-sec. I have tried bigger values maximumRedeliveryDelay, but then I get in situations where the route can take a very long time to stop (waiting for that pending redelivery delay). To address this issue, I set logRetryAttempted to false in the redelivery policy, and then use an onRedelivery processor to log the redelivery attempts I’m interested in. After messing with this for a while, I’ve discovery the most common configuration I use is to log the first redelivery attempt, and the every n-th attempt, where n can be configured. My proposal is to add a configuration option to the redeliveryPolicy so it supports this directly. I haven’t come up with a very good name for the option - logRetryAttemptedModulus is the only thing that popped into my head and I don’t like it much. Does anyone have any feedback on this proposal? And an idea for a good name for the option?
