我遵循了一些关于如何在 heroku 上设置 resque 的指南,但它们已经过时了。
我的 config.ru:
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
在 lib/tasks/resque.task 中:
require 'resque/tasks'
task "resque:setup" => :environment do
ENV['QUEUE'] = '*'
end
desc "Alias for resque:work (To run workers on Heroku)"
task "jobs:work" => "resque:work"
我已将此添加到我的 gemfile 中:
gem "resque"
然后在 initalizers/resque.rb 中:
ENV["REDISTOGO_URL"] ||= "mydatabaseurl"
uri = URI.parse(ENV["REDISTOGO_URL"])
Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password, :thread_safe => true)
我正在使用 redistogo nano heroku 插件。
在 Heroku 上,应用程序因错误而崩溃:
/app/config.ru:16:in `block (2 leve
ls) in <main>': uninitialized constant Rails::Rack::Static (NameError)
导轨版本是3.2.11