Mixiの日記をRSSにするときにmechanizeを使ってそれぞれの日記ページを取ってくるところでThreadが複数になるとInterrupted system call (Errno::EINTR)というエラーが出てうまくいかない。(1スレッドの場合は大丈夫)

↓こんな感じのコード。

# diary_urls --- MIXI日記のURLの配列
# agent ---Mixiに ログイン済みのmechanizeのインスタンス
diary_urls.each do |url|
  threads << Thread.new(agent, url) do |a, u|
    page = a.get(u)
    res = page.root.seach(...)
    entry = {
      "url" => "...",
       "title" => "...",
       "body" => "..." 
    }
  end
end

entries = []
threads.each {|t| entries << t.value }

Threadを使ったコードをあまり書いたことが無いので良くわからなくて難しい。

Comments


Option