如何为 Puma 检查 Rails 应用的线程安全
How to check Rails app's thread safety for Puma
我希望使用 Puma 网络服务器将我的 Rails 应用程序部署到 Heroku。但是,我不太确定是否所有的 Gem 都是线程安全的。阅读所有 Gems 的源代码对我们来说不是可行的选择。
有没有办法自动检查所有 Gem 的线程安全性?或者 Puma complain/display 如果线程不安全代码是 executed/detected 特定的错误日志?
一般检测不到线程安全。如果有某种方法可以自动检测到它,您的 compiler/interpreter 可能会警告您。
Race conditions 无法被自动系统检测到,甚至难以复制。
取决于您的口译员:
CRuby
有 GIL,所以用 Puma
是没有意义的。
- 如果您使用的是
JRuby
或 Rubinius
,那么您可能会从 Puma
中受益,而且您使用的 gem 很可能已经记录了它们的 methods/classes 线程安全性。在这种情况下,您只需检查您的代码即可。
我希望使用 Puma 网络服务器将我的 Rails 应用程序部署到 Heroku。但是,我不太确定是否所有的 Gem 都是线程安全的。阅读所有 Gems 的源代码对我们来说不是可行的选择。
有没有办法自动检查所有 Gem 的线程安全性?或者 Puma complain/display 如果线程不安全代码是 executed/detected 特定的错误日志?
一般检测不到线程安全。如果有某种方法可以自动检测到它,您的 compiler/interpreter 可能会警告您。 Race conditions 无法被自动系统检测到,甚至难以复制。
取决于您的口译员:
CRuby
有 GIL,所以用Puma
是没有意义的。- 如果您使用的是
JRuby
或Rubinius
,那么您可能会从Puma
中受益,而且您使用的 gem 很可能已经记录了它们的 methods/classes 线程安全性。在这种情况下,您只需检查您的代码即可。