gpt4 book ai didi

ruby-on-rails-3 - 如何让 resque-web 在 Heroku 上工作?

转载 作者:行者123 更新时间:2023-12-04 02:23:42 24 4
gpt4 key购买 nike

在我的开发机器上,我可以输入 resque-web在控制台中,它会在我的浏览器上启动一个新选项卡,显示 Resque 界面。

在 Heroku、Cedar 堆栈上,我如何做同样的事情?即我想看到我的 Heroku 应用程序的 Resque 界面。

编辑

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 网络界面。但是,我想保护它不被公众看到。可能有用户名和密码。如何才能做到这一点?

最佳答案

我不太了解heroku,但如果你有 config.ru 机架 您可以在自己的 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(电子邮件,密码)无论您使用什么来验证您的用户。

关于ruby-on-rails-3 - 如何让 resque-web 在 Heroku 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com