This is a quick roundup of what’s new with GoodJob since the last update published for GoodJob v1.4.
GoodJob v1.5: Web Dashboard and configuration
GoodJob ships with a web dashboard to display future, finished and errored jobs for easy inspection. The Dashboard mounts as a self-contained Rails Engine.
GoodJob uses more
Rails.application.config... for improved autoloading compatibility; deprecation notices have examples for updating configuration.
GoodJob v1.6: Daemonize
GoodJob can run as a backgrounded daemon for folks who are still managing servers with
GoodJob v1.7: Scheduled job cache
GoodJob caches scheduled jobs (i.e.
ExampleJob.set(wait: 30.minutes).perform_later) for signifiantly improved latency without relying upon polling.
GoodJob v1.8: Graceful shutdown
GoodJob added additional shutdown options, including
GOOD_JOB_SHUTDOWN_TIMEOUT to allow jobs to finish before exiting.
GoodJob v1.9: async_server mode
GoodJob added an additional
async execution mode to simplify the default configuration: running jobs as part of the web-process (and not console, Rake commands, etc.)
Upcoming: cron and concurrency controls
GoodJob will add support for cron-style repeating jobs, and concurrency controls to ensure that only a specified number (1 or more) jobs are enqueued or performed at the same time. I previously was opposed to extending ActiveJob’s interface, but have changed my mind; it’s on!
Code, documentation, and curiosity-based contributions are welcome! Check out the GoodJob Backlog, comment on or open a Github Issue, or make a Pull Request. Thank you!!! to everyone who has contributed to GoodJob, including morgoth, tedhexaflow, weh, lauer, reczy, zealot128, gadimbaylisahil, Mr0grog, thilo, arku, sj26, jm96441, thedanbob, and joshmn.
I also have a GitHub Sponsors Profile if you’re able to support GoodJob and me monetarily. It helps me stay in touch and send you project updates too.