======== Supervisor
WARNING!!!!
- This gem is extremely rough. There are no tests of any kind. Use at your own risk!
Delayed Jobs Administration for the Masses!
Built for/by Contently by thoughpunch
Description
Supervisor is a Sinatra-based web front-end for managing Delayed Jobs heavily inspired by the excellent delayed_job_web gem.
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!
Installation
gem install 'supervisor'
Usage
Gem Mode
- 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
config.yml
file - Run ``ruby supervisor_app.rb```
-
Supervisor should be up and running on
http://localhost:4567
Known Issues
- Running as a gem inside a Rails app fails to display worker info.
RoadMap
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
Contributing
- Fork it
- Writer tests or extend functionality from the roadmap
- Submit a pull request