1
Как я могу ускорить результаты поиска, вызванные пингом Lastfm api?Как увеличить скорость поиска от внешнего API?
Вот код, мы работаем с:
def self.search(term)
LastfmAPI.artist_search(term).map { |a| Lastfm::Artist.new(a) }
end
# Name and lastfm_id are synonyms
def name
self.lastfm_id
end
def past_events(geo=nil, options={})
events = self.events.past
lastfm_count = LastfmAPI.artist_getPastEvents_count(self.lastfm_id)
# Check if database is current
if events.count == lastfm_count # TODO: && the first event itself matches entirely
# TODO: extract above comparison to method
# return only those in the correct radius
events = events.in_radius(geo) if geo.present?
else
# if not current, make array of Lastfm::Event objects from API call
events = LastfmAPI.artist_getPastEvents_all(self.lastfm_id, lastfm_count).map do |e|
Saver::Events.perform_async(e) # send to worker to save to database
Lastfm::Event.new(e)
end
К сожалению, не могу голосовать, так как у меня пока нет репутации 15. Но ваш ответ приветствуется Джереми. В настоящее время мы кэшируем данные, поэтому результаты поиска улучшаются по мере того, как все данные кэшируются локально. Но новые поиски по-прежнему относительно медленные, и я думаю, что это не поддается контролю. – user2821877