2011-03-19 54 views

回答

2

我在做同樣的事情(機械化+ MySQL的),我通過包裹我的MySQL解決它與一個開始/救援/結束條款要求:

begin 
    mysql_insert data 
rescue Interrupt, Errno::EINTR 
    mysql_close connection 
    connection = mysql_connect 
    retry 
end 

請注意,這使你的代碼在無限循環,如果你在真實情況下使用它,我會建議在它上面加上一些限制器。所有的mysql_ *都是我自己的方法。

+1

如果在這裏中斷的調用是讀取套接字,那麼這樣做會不會有兩次運行相同插入查詢並最終導致重複數據的風險? – 2015-12-17 05:27:41

1

我遇到了同樣的錯誤。在我的情況下,它是由兩個不同的mysql-gem安裝引起的,一個安裝了rvm gem,另一個安裝了默認的osx ruby​​。當我運行默認的osx ruby​​但使用bundler獲取rvm安裝的gem時,二進制文件必須來自錯誤的ruby。

檢查rvm環境並僅使用rvm安裝的gem和bundler修復了此問題。