4

mechanizeを使用してサイトをスクレイピングし、mysqldbにプッシュしています。これらのsys読み取りエラーが頻繁に発生しますが、解決策がわかりません。私はRuby-mysqlgemを使用しています。

4

2 に答える 2

2

私はまったく同じこと(mechanize + mysql)を実行していましたが、mysql呼び出しをbegin / rescue/end句でラップすることで解決しました。

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

これにより、コードが無限ループに陥ることに注意してください。これを実際の何かで使用する場合は、リミッターを設定することをお勧めします。すべてのmysql_*は私自身のメソッドです。

于 2011-03-28T23:25:32.317 に答える
1

同じエラーが発生していました。私の場合、これはmysql-gemの2つの異なるインストールによって引き起こされました。1つrvm gemはデフォルトのosx ruby​​とともにインストールされ、もう1つはデフォルトのosxrubyからインストールされました。デフォルトのosxrubyを実行していたが、bundleを使用してrvmをインストールしたgemを取得したとき、バイナリは間違ったrubyからのものである必要があります。

rvm環境を確認し、rvmがインストールされたgemとbundlerのみを使用すると、問題が修正されました。

于 2011-08-22T09:31:45.280 に答える