有没有人看到过很多这样的错误:
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
不起作用?
答案 0 :(得分:1)
这在Mechanize中可能是非线程安全的,但我可以想到可能导致同样问题的其他错误。如果您正在使用持久连接,我将从禁用持久连接开始。接下来要做的是查看你的代码,并确保你对你处理的对象要小心。如果您的应用程序有多个线程与公共对象混淆,那么可能会破坏一个本来就是线程安全的库。
如果在某处存在线程问题,您可以安全使用的线程的上限是1.还有,您只需要对您希望问题发生的频率进行权衡,而不是是否是否发生。
答案 1 :(得分:0)
根据我今晚的艰苦经历,尝试在Event Machine和this somewhat ancient exchange中同时运行两个基于机械化的任务,不,它似乎不是线程安全的。
答案 2 :(得分:0)
根据this email by Aaron Patterson himself,如果您不在线程之间共享代理,那么您应该没问题。
恕我直言,这意味着Mechanize不是线程安全的。