ruby - 使用线程和 ruby Mechanize 安全吗?

标签 ruby multithreading mechanize

有没有人见过很多这样的错误:

Exception `Net::HTTPBadResponse' at /usr/lib/ruby/1.8/net/http.rb:2022
- wrong status line: _SOME HTML CODE HERE_

何时使用线程和 Mechanize ?我比较确定这是 线程和 net/http 库之间的一些不良行为,但确实 就您想要的线程上限而言,任何人都有任何建议 使用 mechanize/nethttp 时立即运行?我该如何捕获这种异常,因为 rescue Net::HTTPBadResponse 不起作用?

最佳答案

这在 Mechanize 中可能是非线程安全的,但我可以想到可能导致相同问题的其他错误。如果您正在使用它们,我将从禁用持久连接开始。接下来要做的是查看您的代码,并确保您对处理的对象保持谨慎。如果您的应用程序有多个线程处理公共(public)对象,这可能会破坏一个线程安全的库。

如果某处存在线程问题,您可以安全使用的线程上限为 1。再多一些,您只是在权衡希望问题发生的频率,而不是它是否会发生发生与否。

关于ruby - 使用线程和 ruby Mechanize 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903143/

相关文章:

ruby-on-rails - 抛出异常/错误时的错误处理

multithreading - 在Silverlight中,如何使程序在不占用线程的情况下进入休眠状态

Python, Mechanize ,设置多个 header 的正确语法?

ruby - 使用 Mechanize 点击下一页?

ruby-on-rails - Rails - RestClient Unauthorized (401) 错误,POST 请求无法识别用户

ruby - rspec newb 不明白如何满足 "before"方法

ruby - Ruby 的科学模块

c# - Blazor 组件 : notify of collection-changed event causing thread collisions

c# - 在没有 GUI 卡住的情况下运行另一个进程

python - 如何使用 Python 和 Mechanize 抓取网站