1

ローカルマシンのトルクボックス環境でレール展開を実験していますが、すべてうまくいっています。

私はRVM の入門ガイドに加えて、クラスタリングセッションの複製、および分散キャッシングに関するその他の提案に従いました。バックグラウンド ジョブのサポートも試しました。

これで、ローカルの 2 ノード クラスターでアプリケーションを実行し、それらすべてを配置して、あるポートから別のポートに切り替えても、同じセッションと同じキャッシュ データを保持しています。

さて、問題は、トルクボックス環境に接続された Rails コンソールを起動する方法ですか? で試しました

rails c production

アプリケーションディレクトリにあり、コンソールが正常に読み込まれている間、Web アプリケーションからキャッシュされた値を読み取ることができず、Rails.cache.read(:any_key)常に nil を返します。また、このコンソールからバックグラウンド可能なメソッドを呼び出すことができません。それがバックグラウンド可能なメソッドであることを考えるとSearch.foo、私はこの例外を抱えています:

NameError: missing class or uppercase package name (`org.torquebox.core.util.StringUtils')
    from org/jruby/javasupport/JavaUtilities.java:54:in `get_proxy_or_package_under_package'
    from file:/Users/fabio/.rvm/rubies/jruby-1.7.8/lib/jruby.jar!/jruby/java/java_package_module_template.rb:14:in `method_missing'
    from /Users/fabio/.rvm/gems/jruby-1.7.8/gems/torquebox-messaging-3.0.1-java/lib/torquebox/messaging/task.rb:33:in `queue_name'
    from /Users/fabio/.rvm/gems/jruby-1.7.8/gems/torquebox-messaging-3.0.1-java/lib/torquebox/messaging/backgroundable.rb:198:in `publish_message'
    from /Users/fabio/.rvm/gems/jruby-1.7.8/gems/torquebox-messaging-3.0.1-java/lib/torquebox/messaging/backgroundable.rb:158:in `__async_foo'
    from (irb):2:in `evaluate'
    from org/jruby/RubyKernel.java:1123:in `eval'
    from org/jruby/RubyKernel.java:1519:in `loop'
    from org/jruby/RubyKernel.java:1284:in `catch'
    from org/jruby/RubyKernel.java:1284:in `catch'
    from /Users/fabio/.rvm/gems/jruby-1.7.8/gems/railties-3.2.15/lib/rails/commands/console.rb:47:in `start'
    from /Users/fabio/.rvm/gems/jruby-1.7.8/gems/railties-3.2.15/lib/rails/commands/console.rb:8:in `start'
    from /Users/fabio/.rvm/gems/jruby-1.7.8/gems/railties-3.2.15/lib/rails/commands.rb:41:in `(root)'
    from org/jruby/RubyKernel.java:1084:in `require'
    from script/rails:6:in `(root)'

これは、 と の両方Search.fooで発生します。Search.background.foo

また、次のコマンドを使用してコンソールを実行しようとしました

torquebox exec /full/path/to/app-knob.yml 'rails c production'
bundle exec torquebox exec /full/path/to/app-knob.yml 'rails c production'

それらを使用すると、エラーが発生します

chmod: vendor/bundle/jruby/1.9/bin/*: No such file or directory

何か不足していますか?

最後のメモ、私の/config/torquebox.rbファイルには

TorqueBox.configure do

  environment do
    RAILS_ENV 'production'
    GEM_HOME "#{ENV['rvm_path']}/gems/jruby-1.7.8"
    GEM_PATH "#{ENV['rvm_path']}/gems/jruby-1.7.8:#{ENV['rvm_path']}/gems/jruby-1.7.8@global"
  end

  options_for Backgroundable, concurrency: 10
end

GEM_*環境変数の有無にかかわらず試しました

4

1 に答える 1