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を使ったコードをあまり書いたことが無いので良くわからなくて難しい。