###前提・実現したいこと
rubyでcapybara poltergeist を使ってクローラの作成をしています.
対処不明なエラーが発生しているので質問させていただきます.
このエラーの解決法,もしくはエラーを回避しphantomjsを再起動させる方法があれば教えてください.
###発生している問題・エラーメッセージ
プログラム中で capybara からドライバとしてpoltergeistを使ってphantomjsを起動させた後,poltergeistのGitHubのページにあるように,メモリリークを防ぐためsession.driver.quitを実行していると,ちょうど256回目の起動(複数のphantomjsを同じプログラム中で起動させた場合は再起動の合計回数)でopen3.rb,211行目のspawnで Errno:EAGAIN Resource temporarily unavailable のエラーが発生し,phantomjsの起動ができなくなってしまいます.
エラーメッセージ Errno:EAGAIN Resource temporarily unavailable
###該当のソースコード
def setup Capybara.default_driver = :poltergeist Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, {js_errors: false , phantomjs_options: ['--ignore-ssl-errors=yes','--ssl-protocol=any']}) end Capybara.default_selector = :xpath @session = Capybara::Session.new(:poltergeist) @session.driver.headers = { 'User-Agent' => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0" } end def quit @session.driver.quit end i = 0 loop { p "setup " + i.to_s + " times" setup p "quit" quit }
###試したこと
対処法不明
###補足情報(言語/FW/ツール等のバージョンなど)
ruby 2.0.0p648
poltergeist 1.9.0
capybara 2.5.0
PhantomJS 2.0.0
あなたの回答
tips
プレビュー