我正在我本地计算机上的torquebox环境中试验rails部署,一切都很顺利。
我跟踪了他们started guide with RVM以及其他一些关于clustering,sessions replication和distributed caching的建议。我也试过background jobs support。
现在我的应用程序在本地两个节点集群上运行,并且所有内容都已就绪,我从一个端口切换到另一个端口,并且仍然具有相同的会话和相同的缓存数据。
现在的问题是,如何启动连接到扭矩盒环境的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_*
env变量
答案 0 :(得分:3)
尝试https://github.com/torquebox/torquebox-console,但坦率地说,我开始后悔去Torquebox,有趣的并发症和其他不必要的箍跳在它的使用周围萌芽,tbconsole是一个有用的工具,但它有网络变种和检查出来 - 但是在生产中谨慎使用它,它会使开发扭矩箱实例开始表现得离奇(至少对我来说),这使得工作正在进行中#34;几个月后使用感觉。
另外,作为一种解决方法,您可以设置一个"开发"连接到生产主机上的生产数据库的环境,但是在与HornetQ等集成功能或依赖于此类功能的任何功能进行接口时应该会遇到问题,例如https://issues.jboss.org/browse/TORQUE-1175 - Torquebox团队似乎不是急于解决这些问题。