我正在使用mechanize抓取一个站点并推送到mysql db。我经常收到这些sys读取错误,我不确定解决方案是什么。我正在使用Ruby-mysql gem。
答案 0 :(得分:2)
我正在做同样的事情(mechanize + mysql),我通过使用begin / rescue / end子句包装我的mysql调用来解决它:
begin
mysql_insert data
rescue Interrupt, Errno::EINTR
mysql_close connection
connection = mysql_connect
retry
end
请注意,这会使您的代码处于无限循环中,如果您在真实的东西中使用它,我会建议对其进行限制。所有mysql_ *都是我自己的方法。
答案 1 :(得分:1)
我遇到了同样的错误。在我的情况下,它是由两个不同的mysql-gem安装引起的,一个安装了rvm gem
,另一个安装了默认的osx ruby。当我运行默认的osx ruby但使用bundler来获取rvm安装的gem时,二进制文件必须来自错误的ruby。
检查rvm环境并仅使用rvm安装的gems和bundler修复了问题。