2009-05-24 81 views
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不起作用?

回答

1

这可能是Mechanize中非线程安全的东西,但我可以考虑其他可能导致相同问题的错误。如果您正在使用它们,我会先禁用持久连接。接下来要做的就是看看你的代码,并确保你对你处理的对象小心。如果您的应用程序有多个线程用通用对象进行混淆,那么可能会中断一个线程安全的库。

如果某处存在线程问题,那么您可以安全使用的线程上限为1.此外,您只是对发生问题的频率进行权衡,而不考虑是否需要它是否发生。

0

基于我今天晚上试图让两个基于机械化的任务在Event Machine和this somewhat ancient exchange中运行,不,看起来它不是线程安全的。