- This gem is extremely rough. There are no tests of any kind. Use at your own risk!
Delayed Jobs Administration for the Masses!
What makes Supervisor unique is that it can be run in one of two modes. 'Gem' mode runs the mounted Sinatra app inside your Rails app via a route. 'Stand Alone' mode can be run from the same server or even a different location, provided that you configure the database settings to connect to the instance that is storing the delayed jobs. It's a Sinatra app, it's a Gem, it's a Sinatra app inside a gem!
gem install 'supervisor'
- Mount the Sinatra app in your route.rb file like so:
match "/jobs" => Supervisor::App, :anchor => false
Stand Alone Mode
- Cloning the entire repo into its own directory.
- Add Delayed Job database and host info in the
- Supervisor should be up and running on
- Running as a gem inside a Rails app fails to display worker info.
The overall goal is to allow full management of Delayed Jobs workers and tasks from both inside and outside a Rails App. To do so might require stubbing enough Rails functionality that Delayed::Worker and Delayed::Command can run without error.
- Make fully functional as stand alone app
- Ensure can use any ActiveRecord-supported database
- Add PID/Daemon monitoring for Delayed Job Deamons
- Ability to restart jobs if not running from outside Rails app
- Delayed Job log parsing/tailing
- Tail all delayed_job logs in the view via JS like so
- Ability to edit jobs on the fly, individually or in bulk
- Change PID, queue, run_at
- Delayed Jobs statistics and processing numbers
- Store jobs total and jobs per second while app is running, maybe store in YAML?
- Use request-log-analyzer for past dj stats (Note: Current version can not parse logs from Delayed Job v3.0 and later)
- Realtime Graphs and charts
- Write Tests
- Integration tests for Sinatra App, unit tests for all modules and classes.
- Version lock all gems after testing
- Fork it
- Writer tests or extend functionality from the roadmap
- Submit a pull request