Я создаю сайт с django, который позволяет пользователям перемещать контент между кучей фотоуслуг. Как вы можете себе представить, приложение делает много апи-хитов.Ускорение загрузки страниц при использовании внешних API
например: пользователь подключает picasa, flickr, photobucket и facebook к своей учетной записи. Теперь нам нужно вывести контент из 4-х разных apis, чтобы обновлять данные этих пользователей.
сейчас у меня есть функция, которая обновляет каждый api, и я запускаю их все одновременно с помощью потоковой передачи. (все api, которые не включены, возвращают false во второй строке, нет, это не так много накладных расходов, чтобы запускать их все).
Вот мой вопрос:
Что является лучшей стратегией для поддержания контента в актуальном состоянии с использованием этих интерфейсов API?
У меня есть две идеи, которые могли бы работать:
Update API-интерфейсы периодически (например, хрон) и все, что мы имеем в то время, является то, что получает пользователь.
преимущества:
- Это легко и просто осуществить.
- У нас всегда будут хорошие данные, когда пользователь загружает свою первую страницу.
подводные камни:
- мы должны сделать апи хиты все время для пользователей, которые не являются активными, что тратит много трафика
- Это, вероятно, сделать поставщиков API несчастными
Trigger обновления при входе пользователя в систему (на вол eload)
преимущество:
- мы экономим кучу пропускной способности и работать с меньшим риском пишут поставщик API
- не требует почти количества ресурсов на наших серверах
подводные камни:
- мы либо должны сделать обновление асинхронно (и не будем иметь ничего на первом входе) или ...
- первая страница будет занимать очень много времени, чтобы загрузить, потому что мы получать все данные API (Я измерил 26 секунд таким образом)
редактировать: дизайн очень легкий, дизайн имеет только два изображения, внешний файл css и два внешних файла javascript.
Кроме того, число 26 секунд происходит от поджигатель сетевого монитора, работающего на машине, которая находилась на той же локальной сети, что и сервер