基本上,我被 EventMachine 烧伤了,它声称兼容 JRuby,但 java 实现在标准模式中的线程安全问题上失败了(Thread.new{EM.run}
例如,在 JRuby 下不起作用) - 我们在这里讨论非常基本的 EM 函数。
不幸的是,大多数 JRuby gem 都是 MRI gem,以前并未真正在适当的多线程环境中使用(乘客中偶尔的 Thread.new 不算在内),在 JRuby 中编码为合理的线程安全和“调整直到测试通过”。考虑到捕获和测试线程安全问题有多困难,可以合理地假设其中许多 gem 在负载下会损坏。
当然,基准测试可以识别其中许多问题,但对于更复杂的工作流程(例如“与第三方一起登录用户事务处理”),基准测试通常很难进行,并且几乎肯定会泄漏有趣且难以捕获的错误到生产中应用程序足够复杂。
所以问题是,如果您有运行相对复杂的高吞吐量多线程 Rails 应用程序的经验,
- 您如何选择宝石? (是否有列出经过战斗考验的宝石等的资源)
- 在部署之前如何测试线程安全性以及测试后问题泄漏到生产中的频率如何?
- 平均而言,您在声称线程安全和/或 jruby 合规性的 gems 中遇到线程安全问题的频率如何?
- 宝石更新多久会烧伤你?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)