我使用Ruby on Rails完成了一些项目。我将在Rails上使用JRuby并在GAE上托管它。在那种情况下,在开发JRuby应用程序时我需要知道的是什么。我读了那个
如果我对我所做的任何陈述有误,请更正。还有其他我必须知道的事吗?我是否需要从头开始阅读有关JRuby的内容,或者我可以像往常一样开发Ruby应用程序?
答案 0 :(得分:3)
我每天都使用JRuby。
<强>真强>
有些宝石/插件有特定于jruby的版本,有些根本不起作用。总的来说,我发现很少有问题,随着库和平台的成熟,很多问题都消失了(JRuby已经变得更好了)。
您可以访问Java,但一般来说为什么要这样?
<强>题:强>
虽然我想可以想象一下服务器设置,其中JVM的初始启动/预热成本意味着您需要ping服务器,但JRuby中没有任何固有的东西可以实现这一点。如果需要使服务器保持活动状态,则应该查看部署环境。在与乘客共享托管中发生类似情况,其中应用程序在一段时间不活动后可能会内存不足。
另外,我们使用ActiveRecord完全没有问题。
答案 1 :(得分:1)
afaik,rails 3与jruby 100%兼容,因此在该路径上应该没有问题。
像每个新平台一样,你应该通过玩jruby让自己感觉舒服。我建议使用RVM来做到这一点。就你的问题而言:
答案 2 :(得分:0)
至于其他要考虑的事情,它只是一个不同的翻译,并且会出现有趣的差异,需要进行一些调整。
sleep 10.seconds
将抛出异常(你必须sleep 10.seconds.to_i
)并且我记得在从MRI切换到JRuby时在Symbol类上获取NoMethodError(不记得哪种方法)没有实现),只是要记住会有轻微的变化 Timeout.timeout
经常无法按预期工作,因为它的网络代码和星星很好地排列在一起(这大部分是在jruby核心中修复的,但似乎仍然存在一个问题,即宝石在自己的网络代码中运行纯java)killall -9 ruby
没有使用jruby的技巧(之前更频繁地执行),你必须ps -ef
然后跟踪正确的进程而不会杀死你的netbeans等(轻微的,但令人讨厌的)另外,请参阅jruby团队关于差异的内容,https://github.com/jruby/jruby/wiki/DifferencesBetweenMriAndJruby
但是,是的,否则它“就像MRI Ruby一样”:)