ActiveJob and :exponentially_longer

We’re seeing issues using :exponentially_longer where failures in downstream systems are causing a thundering herd effect. A great many jobs fail, they all get enqueued to try again in a static interval and bring down the downstream system yet again. This repeats until the retry limit is exhausted.

We’ve gotten around this using a custom wait block but since exponential backoff with randomness is builtin to some adapters, like Sidekiq , I’m propsing to have it baked into to :exponentially_longer.

I submitted a PR here: Add :jitter to :exponentially_longer by allcentury · Pull Request #31872 · rails/rails · GitHub

Hello - Is anyone available to review this PR? I believe I’ve addressed all feedback. Thank you! Add :jitter to :exponentially_longer by allcentury · Pull Request #31872 · rails/rails · GitHub

Anthony

+1 I had a similar issue and would welcome it…

+1 to get this feature into Rails

It’s merged. Thanks everyone :raised_hands:

1 Like