如何检查 Rails 应用程序的 Puma 线程安全性



我希望使用Puma webserver将我的Rails应用程序部署到Heroku。然而,我不确定是否所有的宝石都是线程安全的。阅读所有Gems的源代码对我们来说是不可行的。

是否有一种方法可以自动检查所有Gems的线程安全性?或者,如果执行/检测到线程不安全代码,Puma会抱怨/显示特定的错误日志吗?

一般无法检测到线程安全。如果有某种方法可以自动检测到它,那么编译器/解释器可能会警告您。竞争条件不能被自动系统检测到,它们甚至很难重现。

取决于你的解释器:

  • CRuby具有GIL,因此使用Puma是没有意义的。
  • 如果你正在使用JRubyRubinius,那么你可能会从Puma中受益,而且你使用的宝石很可能已经记录了它们的方法/类线程安全。在这种情况下,你所需要做的就是检查你的代码。

最新更新