在我的开发机器上,我可以在控制台中键入resque-web
,然后在我的浏览器上启动一个显示Resque界面的新选项卡。
在Heroku上,Cedar堆栈,我怎么能做同样的事情?即我希望看到Resque的界面为我的Heroku应用程序。
修改
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 Web界面。但是,我想保护这一点不受公众的欢迎。可能使用用户名和密码。怎么办呢?
答案 0 :(得分:4)
我真的不知道heroku,但如果您有 config.ru 或 Rackup 文件,您可以在自己的rails应用程序中运行resque-web,这里是如何做的样本:
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
修改强>
由于您已将其安装在rails中,只需在初始化文件中添加此语句:
Resque::Server.class_eval do
use Rack::Auth::Basic do |email, password|
user = User.authenticate( email, password )
user && user.admin?
end
end
显然,使用 User.authenticate(电子邮件,密码)来验证用户身份。
答案 1 :(得分:0)
此问题和Maurício's answer可能指的是Resque中包含的Sinatra应用。
还有resque-web,一个可以添加到Heroku上现有Rails应用程序的Rails引擎。我发现这是一个更简单,更快速的解决方案。
Resque-web包含HTTP基本身份验证的界面,您可以在project documentation中查看。