Our great sponsors
-
delayed
a multi-threaded, SQL-driven ActiveJob backend used at Betterment to process millions of background jobs per day
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
One big difference if you're changing forks is to take note of "at least once delivery": https://github.com/betterment/delayed#at-least-once-delivery
If you're not aware of that, simply switching repos may cause some surprises.
Seems maintained to me:
https://rubygems.org/gems/delayed_job
https://github.com/collectiveidea/delayed_job
I've been using Sidekiq for years, rock solid and no complaints.
However, this recent addition to the space seems to be gaining traction and appears to have an excellent feature set -
https://github.com/bensheldon/good_job
Another fork is [0] which adds debouncing, serialization, recurring jobs, and other useful things.
(Disclaimer: I used to work at Instructure.)
[0] https://github.com/instructure/inst-jobs
https://github.com/mhenrixon/sidekiq-unique-jobs
All of which also extend the web UI for Sidekiq which is incredibly useful for both debugging and having a handle on what's with your queues.
Finally, if you're going to be using Sidekiq in any serious way I'd recommend Nate Berkopec's "Sidekiq in Practice" - https://nateberk.gumroad.com/l/sidekiqinpractice
Beyond being an incredibly useful resource on its own - you get access to a very active private Slack that is filled with other very helpful developers who are using Sidekiq.
I helped maintain delayed_job_web as a UI. It has fallen behind substantially now though. If folks are looking for a UI - it would be great to update it for modern versions of Rails. https://github.com/ejschmitt/delayed_job_web
I've recently discovered jemalloc, specifically when used with Heroku.
"Using jemalloc instead of regular malloc helps too. The exact way to do this depends on the platform you use, but it is pretty simple on Heroku. Just set heroku-buildpack-jemalloc as the first buildpack (ahead of the heroku/ruby buildpack)."
FYI, remember to set JEMALLOC_ENABLED=true in your env to actually turn it on.
https://github.com/gaffneyc/heroku-buildpack-jemalloc
https://github.com/que-rb/que
This one seems to be the most performant. By a lot too, from my understanding (haven't ran any benchmark myself, but the readme shows some good postgres knowledge)
rocket job is pretty solid too, has a lot of the pro sidekiq features for free https://rocketjob.io/