Skip to content

Instantly share code, notes, and snippets.

@grosser
Forked from skippy/resque_web.rb
Created April 3, 2011 15:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save grosser/900491 to your computer and use it in GitHub Desktop.
Save grosser/900491 to your computer and use it in GitHub Desktop.
Rails::Initializer.run do |config|
#.......
config.middleware.use 'ResqueWeb'
end
require 'sinatra/base'
class ResqueWeb < Sinatra::Base
require 'resque/server'
use Rack::ShowExceptions
# CFG is a placeholder for 'your global config'
if CFG[:user].present? and CFG[:password].present?
Resque::Server.use Rack::Auth::Basic do |user, password|
user == CFG[:user] && password == CFG[:password]
end
end
def call(env)
if env["PATH_INFO"] =~ /^\/resque/
env["PATH_INFO"].sub!(/^\/resque/, '')
env['SCRIPT_NAME'] = '/resque'
@server ||= Resque::Server.new
status, headers, body = @server.call(env)
# in production with nginx, assets always hang endless <-> this fixes it
if body.is_a? Sinatra::Helpers::StaticFile
buffer = []
body.each{|x| buffer << x }
body = buffer
end
[status, headers, body]
else
super
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment