2

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

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

何时使用螺纹和机械化?我相对确定这是线程和net/http库之间的一些不良行为,但是对于您在使用 mechanize/nethttp 时想要一次运行的线程上限有什么建议吗?我怎么能捕捉到这种异常,因为rescue Net::HTTPBadResponse它不起作用?

4

3 回答 3

1

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

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

于 2009-05-24T05:33:35.383 回答
0

根据我今晚的艰苦经验,试图让两个基于 Mechanize 的任务在 Event Machine 和这个有点古老的交换中串联运行,不,它似乎不是线程安全的。

于 2010-12-02T03:45:23.127 回答
0

根据Aaron Patterson 本人的这封电子邮件,如果您不在线程之间共享代理,则应该没问题。

恕我直言,这意味着 Mechanize 不是线程安全的。

于 2016-03-15T20:11:05.857 回答