Skip to content


Choose a tag to compare
@bensheldon bensheldon released this
· 56 commits to main since this release

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.

  1. 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.
  2. Upgrade from v2.99.x to v3.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.
  • :inline execution mode respects job schedules. Tests can invoke GoodJob.perform_inline to execute jobs.
  • GoodJob::Adapter can no longer can be initialized with custom execution options (queues:, max_threads:, poll_interval:).
  • Renames GoodJob::ActiveJobJob to GoodJob::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