2011-08-31 10 views
11

Na mojej maszynie programistycznej mogę wpisać resque-web w konsoli i uruchamia ona nową kartę w mojej przeglądarce, która pokazuje interfejs Resque.Jak uzyskać resque-web do pracy na Heroku?

Na Heroku, Cedar stack, jak mogę zrobić to samo? tj. chciałbym zobaczyć interfejs Resque dla mojej aplikacji Heroku.

EDIT

w 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 } 

w routes.rb

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

wszystko działa. Teraz mogę zobaczyć interfejs sieciowy Resque. Chciałbym jednak chronić to przed opinią publiczną. Prawdopodobnie z nazwą użytkownika i hasłem. Jak to zrobić?

+0

Bardzo pomocna. [Sprawdź to] (http://railscasts.com/episodes/82-http-basic-authentication), jeśli chcesz tylko podstawowe uwierzytelnianie HTTP. – Suren

+0

Ten dokument jest pomocny, jeśli używasz Redis To Go: https://redistogo.com/documentation/resque?language=en –

Odpowiedz

4

Naprawdę nie Heroku wiem, ale jeśli masz config.ru lub Rackup plik można uruchomić Resque-web wewnątrz własnej aplikacji szyn, oto próbka tego, jak to zrobić:

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

Jak już go montażu wewnątrz szyn, wystarczy dodać to oświadczenie w pliku inicjatora:

Resque::Server.class_eval do 

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

end 

Oczywiście dokonaj User.authenticate (e-mail, hasło) niezależnie od tego, czego używasz do uwierzytelniania użytkowników.

+0

Zobacz moją edycję powyżej –

+1

Masz już zaktualizowaną odpowiedź. –

+0

Czy ma znaczenie, czy jego 'Resque :: Server' lub' Resque :: Server.new'? Widziałem przykłady obu! –

0

To pytanie i Maurício's answer prawdopodobnie dotyczą aplikacji Sinatra dołączonej do Resque.

Jest także resque-web, silnik szyny, który można dodać do istniejącej aplikacji Rails na Heroku. Stwierdziłem, że jest to łatwiejsze i szybsze rozwiązanie.

Resque-web zawiera interfejs podstawowy uwierzytelniania HTTP, który można sprawdzić w project documentation.