2011-08-31 10 views
11

En mi máquina de desarrollo, puedo escribir resque-web en una consola e inicia una nueva pestaña en mi navegador que muestra la interfaz de Resque.¿Cómo obtener resque-web para trabajar en Heroku?

En Heroku, pila de cedro, ¿cómo puedo hacer lo mismo? es decir, me gustaría ver la interfaz de Resque para mi aplicación Heroku.

EDITAR

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

en routes.rb

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

todo funciona. Ahora puedo ver la interfaz web de Resque. Sin embargo, me gustaría proteger esto de la vista pública. Posiblemente con un nombre de usuario y contraseña. ¿Cómo puede hacerse esto?

+0

Muy útil. [Verifique esto] (http://railscasts.com/episodes/82-http-basic-authentication) si solo desea una autenticación HTTP básica. – Suren

+0

Este documento es útil si usa Redis To Go: https://redistogo.com/documentation/resque?language=en –

Respuesta

4

Realmente no sé heroku, pero si usted tiene un config.ru o Rackup archivo que se puede ejecutar resque en la web dentro de su propia aplicación rieles, he aquí una muestra de cómo hacerlo:

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 

EDITAR

Como ya se está montando en el interior de los carriles, sólo tiene que añadir esta declaración en un fichero de inicialización:

Resque::Server.class_eval do 

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

end 

Obviamente, haga User.authenticate (correo electrónico, contraseña) lo que sea que use para autenticar a sus usuarios.

+0

Vea mi edición anterior –

+1

Ahí va, respuesta actualizada. –

+0

¿Importa si es 'Resque :: Server' o' Resque :: Server.new'? ¡He visto ejemplos de ambos! –

0

Esta pregunta y Maurício's answer probablemente se refieren a la aplicación Sinatra incluida con Resque.

También hay resque-web, un motor de rieles que se puede agregar a una aplicación de Rails existente en Heroku. Encontré que esta es una solución más fácil y más rápida.

Resque-web incluye una interfaz para HTTP auth auth, que puede consultar en el project documentation.

Cuestiones relacionadas