2012-03-16 3 views
0

Я создаю приложение, которое использует места и категории из Foursquare. Чтобы ускорить некоторые алгоритмы и избежать слишком много вызовов api в Foursquare, я решил предварительно выбрать некоторые данные из Foursquare (используя его API) и сохранить их на моем конце в базе данных mongodb.Event machine для параллельных запросов api

В текущей реализации алгоритма на предзапросах для того, чтобы ускорить процесс, я исполняющий параллельные запросы на Foursquare, используя механизм распараллеливания простой Ruby, например:

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 в этом случае?

ответ

Смежные вопросы