スレッドの続き、子プロセスも
昨日の続き。更新ping全体ではなく、ひとつひとつのXML-RPCをスレッドにしてみました。
thread_list = Array.new
ping_uris.each do |ping_uri|
uri = URI.parse(ping_uri)
thread_list << Thread.new(uri) do |u|
connection = XMLRPC::Client.new(u.host, u.path, u.port)
connection.call('weblogUpdates.ping', name, url)
end
end
thread_list.each {|t| t.join}
うーん、これならたしかに並列処理できるけど、結局は待たなきゃいけないんだな。更新ping処理全体を子プロセスとかにしたほうがいいかも。