ruby-on-rails – 在Nailgun模式的JRuby 1.7上的Rails应用程序不
发布时间:2020-12-16 22:03:04 所属栏目:百科 来源:网络整理
导读:我在RVM中安装了J Ruby 1.7.2,创建了一个gemset,执行了bundle安装.现在,我运行这个: 期限1: [lzap@lzapx my_app]$bundle exec jruby --ng-servNGServer started on all interfaces,port 2113. 期限2: [lzap@lzapx my_app]$JRUBY_OPTS="--1.9 --ng" bundle
我在RVM中安装了J
Ruby 1.7.2,创建了一个gemset,执行了bundle安装.现在,我运行这个:
期限1: [lzap@lzapx my_app]$bundle exec jruby --ng-serv NGServer started on all interfaces,port 2113. 期限2: [lzap@lzapx my_app]$JRUBY_OPTS="--1.9 --ng" bundle exec rails s 问题没有发生,终端不要打印任何东西,它只是永远挂起来.顶部不显示任何java / jruby进程工作. 如果我尝试启动没有–ng的应用程序,它可以正常工作.有什么问题?捆绑? 防火墙当然是禁用的. 解决方法
一个指甲服务器
可以为rails生成binstub … $bundle binstubs rails …并编辑它以设置JRUBY_OPTS. ENV['JRUBY_OPTS'] = '--1.9 --ng --nailgun-port 2113' load Gem.bin_path('rails','rails') 这样,只有捆绑包裹的客户端部分在捆绑包裹的指甲枪服务器中执行. 由于指甲枪不传播信号,您可能希望使用控制器来阻止它: class RailsController < ApplicationController def stop Process.kill :INT,0 end end 基准测试: $time bin/rails -v # modified Rails 3.0.11 real 0m3.737s user 0m6.579s sys 0m0.223s $time bin/rails -v # unmodified Rails 3.0.11 real 0m5.547s user 0m12.739s sys 0m0.411s $time bundle exec rails -v Rails 3.0.11 real 0m9.145s user 0m20.708s sys 0m0.682s 两个指甲服务器 在理论上可以使用第二个“非捆绑执行的服务器”.为了避免显式重新启动,但允许杀死(使用两个Ctrl-C按下)我建议这个循环: $while sleep 1; do jruby --ng-server 2112; done 第二个甲形枪实例的端口必须在外部客户端中指定: $JRUBY_OPTS='--1.9 --ng --nailgun-port 2112' bin/rails s 我没有看到性能提升,出现在“错误”控制台中的输出是令人讨厌的.但也许这在其他系统上更快.还有其他人可能会看到改进这种方法的方法? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |