データ チームのために Excel パーサーを作成していますが、Spreadsheet 0.6.5.1 gem で問題が発生しました。
Ruby 1.9.2 では、Spreadsheet.open メソッドを使用するとすぐに最大 700m-1.3g のメモリが使用され、小さい (1 シート、300 行) ワークブックであってもそこで無期限にハングアップします。一方、Ruby 1.8.7 では、Spreadsheet.open は迅速かつ完璧です。
現在、irb で多くの作業を行っているため、使用している環境を基本 (rubygems/spreadsheet gem) だけに制御できますが、最終的にはこのパーサーを Rails 3 プロジェクトに移動する必要があります。したがって、1.8.7 で解決することはできません。
この問題に関するドキュメントはなく、他の人がこの問題を経験しているという証拠さえありません。Spreadsheet.open 呼び出しを中止するたびに、毎回このエラーが発生します。
gems/spreadsheet-0.6.5.1/lib/spreadsheet/worksheet.rb:181:in 'call'
サルがこれにパッチを当てたり、宝石に直接飛び込んで解決策をハックしたりすることは避けたいと思います。他の誰かがこの問題を経験しましたか? それとも似たようなもの?