Решение, которое я реализовал на данный момент, таково: всякий раз, когда пользователь входит в систему, перебирает все 100 блоков друзей и помещает их в Rails.cache.Они остаются там до тех пор, пока пользователь не выйдет и снова не войдет в систему. Теперь, когда я знаю, что запросы API подсчитываются против вошедшего в систему пользователя, мне не нужно беспокоиться о достижении API ограничения скорости, поскольку у каждого пользователя будет 350 запросов начас.
Однако я нашел несколько проблем с этим, и у меня есть несколько мыслей о решениях:
Проблема: Мыхранение большого объема данных для кэширования чьих-либо друзей.
Решение: Было бы лучше, если бы мы могли кэшировать всех пользователей Twitter, которые являются друзьями одного из наших пользователей, в одном объекте (или хэше).), а также кэшировать только идентификаторы друзей для каждого пользователя (которые можно получить с помощью гораздо меньшего количества вызовов API).Это может привести к некоторому замедлению, но потребуется гораздо меньше места для хранения.Затем, когда пользователь входит в систему, мы просто обновляем глобальный кэш друзей с любыми изменениями (например, изображение, имя и т. Д.).
Проблема: Мойприложение все еще должно хранить это и выяснить, как его проанализировать;это не очень организовано.
Решение: Извлеките эту функциональность в новое приложение, которое создает лучший API для поиска.Если я выполню это, я выложу здесь обновление со ссылкой.