JRuby中Timeout::Timeout的当前状态是什么?它可靠吗



jruby-lint报告使用Timeout::Timeout作为潜在的问题来源:

   ./app/models/xyz.rb:273: [timeout, warning] Timeout in JRuby does not work in many cases

但在谷歌上搜索该警告似乎表明,报告的大多数错误已经修复或适用于非常具体的情况。此外,看起来JRuby对Timeout::Timeout的实现比MRI的实现更可靠、更高性能。是这样吗?

我用它来处理Net::HTTP请求中的超时,这是一个相当常见的用例,所以我想如果它不起作用,我会发现报告的打开错误。我可以无视jrlint的警告吗?

jruby 1.5+中的

timeout应该比旧版本中好得多,因为它现在是在jruby中本地实现的(请参阅https://github.com/jruby/jruby/commits/master/src/org/jruby/ext/Timeout.java)与旧的ruby实现相比,后者确实相当糟糕。

从历史上看,自1.5以来,已经修复了一些与net/http相关的错误,因此使用1.6+可以获得最佳结果。

所以我想说,是的,你可以无视这个警告。

最新更新