Я создаю приложение, которое использует места и категории из 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 в этом случае?