使用twitter gem进行并行调用

时间:2016-04-23 13:26:06

标签: ruby twitter concurrency mri

我正在使用twitter gem从我的应用程序进行API调用并获取一些数据。

我有一个user_ids数组,我希望通过这样的方式获取每个用户的所有推文:

user_ids.map {|user_id| Client.user_timeline(user_id)}

有没有办法让这些调用并发?有什么方法可以使用typhoeus或任何与twitter类似的宝石?有没有其他方法可以快速完成此操作?

1 个答案:

答案 0 :(得分:1)

Ruby threads中包含您的API调用以同时运行它们:

tweets, threads = [], []

threads = user_ids.map do |user_id|
  Thread.new { tweets << Client.user_timeline(user_id) }
end

threads.each(&:join)

# All the tweets are in the `tweets` array
puts tweets