我正在创建一个使用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?