GoodJob version 3.0.0 has been released 🎉 Review the Changelog for more details.
GoodJob is a multithreaded, Postgres-based, ActiveJob backend for Ruby on Rails. GoodJob is simple to use, safe, performant, and builds on top of ActiveJob, including a management dashboard, cron-like scheduling, and job concurrency controls,
How to upgrade
GoodJob v3 is operationally identical to v2; upgrading to GoodJob v3 should be simple. If you are already using >= v2.9+ no other changes are necessary.
- Upgrade to
v2.99.x, following the minor version upgrade process, running any remaining database migrations (rails g good_job:update) and addressing deprecation warnings. - Upgrade from
v2.99.xtov3.x
Notable changes
- Defaults to preserve job records, and automatically delete them after 14 days (details).
- Defaults to discarding failed jobs, instead of immediately retrying them.
:inlineexecution mode respects job schedules. Tests can invokeGoodJob.perform_inlineto execute jobs.GoodJob::Adaptercan no longer can be initialized with custom execution options (queues:,max_threads:,poll_interval:).- Renames
GoodJob::ActiveJobJobtoGoodJob::Job. - Removes support for Rails 5.2.
New features
GoodJob v3.0 does not introduce any new features on its own. Since GoodJob v2.0 was released, notable improvements include:
- Significant improvements to the Dashboard, including:
- Reschedule, discard, retry, and destroy jobs individually, or in bulk
- Full-text search
- Live polling
- Tracking of execution processes
- Internationalization support, currently Spanish, Dutch, and Russian
- Significant data and ergonomic improvements
- HTTP healthcheck/readiness/liveliness probe support
- Automatic cleanup of preserved jobs (previously required usage of a rake task)
- JRuby support for LISTEN/NOTIFY