Как получить resque-web для работы на Heroku?

На моей машине dev я могу набрать resque-web в консоли, и она запускает новую вкладку в моем браузере, которая показывает интерфейс Resque.

На Хероку, стек кедра, как я могу сделать то же самое? то есть я хотел бы увидеть интерфейс Resque для моего приложения Heroku.

ИЗМЕНИТЬ

in config/initializers/resque.rb

require 'resque'
require 'resque/server'

uri = URI.parse(APP_CONFIG['redis_to_go_url'])
Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

# Load all jobs at /app/jobs
Dir["#{Rails.root}/app/jobs/*.rb"].each { |file| require file }

в routes.rb

mount Resque::Server.new, :at => '/resque'

Все работает. Теперь я могу увидеть веб-интерфейс Resque. Тем не менее, я хотел бы защитить это от общественного мнения. Возможно с именем пользователя и паролем. Как это можно сделать?

Ответ 1

Я не знаю герою, но если у вас есть файл config.ru или Rackup, вы можете запустить resque-web внутри своего собственного приложения rails, здесь образец того, как это сделать:

require File.dirname(__FILE__) + '/config/environment'
require 'resque/server'

Resque::Server.class_eval do

  use Rack::Auth::Basic do |email, password|
    user = User.authenticate( email, password )
    user && user.admin?
  end

end

app = Rack::Builder.new {
  use Rails::Rack::Static

  map "/resque" do
    run Resque::Server
  end

  map "/" do
    run ActionController::Dispatcher.new
  end
}.to_app

run app

ИЗМЕНИТЬ

Поскольку вы уже устанавливаете его внутри рельсов, просто добавьте этот оператор в файл инициализации:

Resque::Server.class_eval do

  use Rack::Auth::Basic do |email, password|
    user = User.authenticate( email, password )
    user && user.admin?
  end

end

Очевидно, сделайте User.authenticate(email, password) все, что вы используете для аутентификации ваших пользователей.

Ответ 2

Этот вопрос и ответ Маурисио, скорее всего, относятся к приложению Sinatra, включенному в Resque.

Там также resque-web, Rails Engine, который можно добавить в существующее приложение Rails на Heroku. Я нашел это более простым и быстрым решением.

Resque-web включает в себя интерфейс для HTTP basic auth, который вы можете проверить в проектной документации.