2

いくつかのグレープ API ミドルウェアをロードするために、rackup config.ru ファイルを使用して Rails 2.3 アプリを実行しています。

最近、resque サーバーを実行する必要があります。

私のconfig.ruはこのように設定されています。

require File.dirname(__FILE__) + '/config/environment'

my_app = Rack::Builder.new do
 use Rails::Rack::LogTailer #optional
 use Rails::Rack::Static # optional
 run ActionController::Dispatcher.new
end



Resque::Server.class_eval do
  use Rack::Auth::Basic do |user, password|
    begin
      if user == "admin" and password == "bandana"
        true
      else
        false
      end
    end 
  end

end

run Rack::URLMap.new([
  "/" => my_app,
  "/resque" => Resque::Server.new
])

run Rack::Cascade.new([
  GrapeAPI_entry_1,
  GrapeAPI_entry_2,
  my_app
])

これは私に望ましい効果を与えません。その理由はわかりません。

4

2 に答える 2

4

私は実際に答えを見つけました。redisが実行されていないことが判明しました。はい、マップでカスケードを使用できます

最終的な config.ru は次のようになります。

re File.dirname(__FILE__) + '/config/environment'
require 'resque/server'

my_app = Rack::Builder.new do
 use Rails::Rack::LogTailer #optional
 use Rails::Rack::Static # optional
 run ActionController::Dispatcher.new
end

Resque::Server.class_eval do
  use Rack::Auth::Basic do |user, password|
    begin
      if user == "admin" and password == "bandana"
        true
      else
        false
      end
    end 
  end

end



app = Rack::Builder.new {
  use Rails::Rack::Static

  map "/resque" do
    run Resque::Server
  end

  map "/" do
    run my_app
  end
}.to_app

run Rack::Cascade.new([
  Grape_API_1,
  Grape_API_2,
  my_app
])
于 2012-05-19T01:56:38.840 に答える
1

私は最近、Rails サーバーの 1 つで resque に同様のアクセスを追加しました。それはうまく機能します-これが私がやった方法です:

# This file is used by Rack-based servers to start the application.
require ::File.expand_path('../config/environment',  __FILE__)
require 'resque/server'

run Rack::URLMap.new \
  "/"       => MyApp::Application,
  "/resque" => Resque::Server.new

ただし、私のアプリは Rails 3.2 に基づいています。実行しているラック バージョンの違いが何であるかはわかりません。

resque サーバーコードが必要ですか?

于 2012-05-09T04:06:04.337 に答える