Need help with delayed_job_web?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

444 Stars 182 Forks MIT License 185 Commits 29 Opened issues


Resque like web interface for delayed job

Services available


Need anything else?

Contributors list


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 enqueued, working, pending, and failed jobs.
  • 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 names (comma separated values in the input filter).
  • Reset all queue filters by clicking the reset button.

The interface (yeah, 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...


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 file

if Rails.env.production?
  DelayedJobWeb.use Rack::Auth::Basic do |username, password|
    ActiveSupport::SecurityUtils.variable_size_secure_compare('username', username) &&
      ActiveSupport::SecurityUtils.variable_size_secure_compare('password', password)

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

Authenticating with Devise and Warden

This can be accomplished in the routes.rb file using an

callback. Note, do not use an
callback as this forces an authentication check and redirects can be screwy, see here for more information.

A simple user check looks like this:

authenticated :user do
  mount DelayedJobWeb, at: "/delayed_job"

But you probably want to check for administrator permissions:

authenticated :user, -> user { user.admin? }  do
  mount DelayedJobWeb, 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.


XSendFile On
XSendFilePath /path/to/shared/bundle

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

Using Rails you'll have to set

config.action_dispatch.x_sendfile_header = "X-Sendfile"


Nginx uses an equivalent that's called

, further instructions can be found in their wiki.

Rails' will need to be configured to

config.action_dispatch.x_sendfile_header = "X-Accel-Redirect"


Lighty is more

, like outlined in their wiki.


The following settings can be changed using the

method in your For example:
DelayedJobWeb.set(:allow_requeue_pending, false)
  • allow_requeue_pending

Controls whether the 'Enqueue all immediately' button is available on the list of Pending jobs. Hiding this button can be useful if you have jobs set to run in the future and you don't want to accidentally run them immediately.


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

Releasing a new version

  1. Update the version in
  2. git commit delayed_job_web.gemspec
    with the following message format:
    Version x.x.x


    • Some new feature
    • Some new bug fix
  3. rake release


Erick Schmitt - @ejschmitt

Maintained by Andy Atkinson - @andatki

Get in touch if you'd like to take over maintenance!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.