nesquena / backburner

Simple and reliable beanstalkd job queue for ruby
http://nesquena.github.com/backburner
MIT License
428 stars 68 forks source link

Support retrying jobs without logging an exception #144

Closed eltone closed 5 years ago

eltone commented 6 years ago

In our usage of backburner we have quite a few expected error cases, especially when interacting with storage systems that use optimistic concurrency control. If two jobs are competing to update the same resource, one of them will fail.

The only means (that I know of) of retrying a job is to raise an exception or to enqueue a new one (which is undesirable as it will lead to a bunch of serialization and IO). Raising an exception each time is leading to a lot of noise in our error logs

I can think of 2 ways to solve this issue:

eltone commented 5 years ago

Implemented by #159 .