Skip to content
Resque like web interface for delayed job
Branch: master
Clone or download
Pull request Compare This branch is 6 commits ahead, 40 commits behind ejschmitt:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib
test
.gitignore
.travis.yml
Gemfile
LICENSE.txt
README.markdown
Rakefile
delayed_job_web.gemspec

README.markdown

delayed_job_web

A resque inspired (read: stolen) interface for delayed_job. This gem is written to work with rails 3 and 4 applications using activerecord.

Some features:

  • Easily view jobs enqueued, working, pending, and failed.
  • Queue any single job. or all pending jobs, to run immediately.
  • Remove a failed job, or easily remove all failed jobs.
  • Watch delayed_job operation with live ajax polling.
  • Filter delayed_jobs by queue name

The interface (yea, a ripoff of resque-web):

Screen shot

Quick Start For Rails 3 and 4 Applications

Add the dependency to your Gemfile

gem "delayed_job_web"

Install it...

bundle

Add the following route to your application for accessing the interface, and retrying failed jobs.

match "/delayed_job" => DelayedJobWeb, :anchor => false, via: [:get, :post]

You probably want to password protect the interface, an easy way is to add something like this your config.ru file

if Rails.env.production?
  DelayedJobWeb.use Rack::Auth::Basic do |username, password|
    username == 'username' && password == 'password'
  end
end

delayed_job_web runs as a Sinatra application within the rails application. Visit it at /delayed_job.

Serving static assets

If you mount the app on another route, you may encounter the CSS not working anymore. To work around this you can leverage a special HTTP header. Install it, activate it and configure it -- see below.

Apache

XSendFile On
XSendFilePath /path/to/shared/bundle

XSendFilePath white-lists a directory from which static files are allowed to be served. This should be at least the path to where delayed_job_web is installed.

Using Rails you'll have to set config.action_dispatch.x_sendfile_header = "X-Sendfile".

Nginx

Nginx uses an equivalent that's called X-Accel-Redirect, further instructions can be found in their wiki.

Rails' will need to be configured to config.action_dispatch.x_sendfile_header = "X-Accel-Redirect".

Lighttpd

Lighty is more X-Sendfile, like outlined in their wiki.

Contributing

  1. Fork
  2. Hack
  3. rake test
  4. Send a pull request

Releasing a new version

  1. Update the version in delayed_job_web.gemspec

  2. git commit delayed_job_web.gemspec with the following message format:

     Version x.x.x
    
     Changelog:
     * Some new feature
     * Some new bug fix
    
  3. rake release

Author

Erick Schmitt - @ejschmitt

You can’t perform that action at this time.