用于并行api请求的事件机器

时间:2012-03-16 10:12:18

标签: ruby api caching foursquare eventmachine

我正在创建一个使用Foursquare中的场地和类别的应用程序。为了加速一些算法并避免对Foursquare进行过多api调用,我决定从Foursquare预取一些数据(使用它的API)并将其存储在我的mongodb数据库中。

在预取算法的当前实现中,为了加快过程,我使用简单的ruby的线程机制对Foursquare执行并行请求,例如:

threads = []
venue_ids.each do |venue_id|
  threads << Thread.new
    data = fetch_venue_from_foursquare(venue_id)
    do_something_with(data)
  end
end
threads.join

通常这种方法有效,但我在处理错误方面存在一些问题,有时可能会停止并永远不会结束。

我该如何改进这种方法? 在这种情况下是否可以使用eventmachine?

1 个答案:

答案 0 :(得分:2)

: - )

查看em-synchrony