Ruby on Rails不能很好地执行多线程请求响应,或者至少ActiveRecord没有.
在创建Web应用程序时,只有一个请求响应同时处于活动状态的概念可能会很麻烦,这些应用程序会分离一个需要很长时间才能完成的shell命令.
我想要的是你对这些设置的一些看法? Rails可能不适合某些应用程序吗?
另外,Ruby on Rails中关于并发性的当前事态是什么?什么是最佳实践.有缺点的解决方法吗?
解决方法
Rails目前不能在单个MRI(Matz Ruby Interpreter)Ruby流程中处理并发请求.每个请求都由一个巨大的互斥锁包含.很多工作已经开始使即将推出的Rails 2.2线程安全,但是当你在Ruby 1.8x下运行时,你不会从中获得很多好处.我不能评论Ruby 1.9是否会有所不同,因为我对它不是很熟悉,但可能不是我想的.
在这方面看起来非常有前途的一个领域是使用JRuby运行Rails,因为JVM通常被认为擅长多线程.最近,Sun Microsystems的Arun Gupta在RailsConf Europe的这个设置上给了一些interesting performance figures.