Как заставить resque-web работать на Heroku? - PullRequest
11 голосов
/ 31 августа 2011

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

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

EDIT

в 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.Тем не менее, я хотел бы защитить это от публичного просмотра.Возможно с именем пользователя и паролем.Как это можно сделать?

Ответы [ 2 ]

4 голосов
/ 31 августа 2011

Я на самом деле не знаю heroku, но если у вас есть файл 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

EDIT

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

Resque::Server.class_eval do

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

end

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

0 голосов
/ 25 января 2016

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

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

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

...