Прежде всего, позвольте мне сказать, что я новичок в рельсах, работаю с ним всего пару дней.
Мое первое приложение немного отличается от традиционного: в одном из моих классов моделей у меня есть части данных, которые извлекаются из базы данных, а другая часть, полученная путем выполнения HTTP-запроса REST к внешнему ресурсу.
Я реализовал отложенную загрузку для «внешнего» ресурса, но каждый раз, когда пользователь переходит на страницу, для которой требуется одно из полей, привязанных к этому ресурсу, я повторно выполняю HTTP-запрос, который, очевидно, не масштабируется .
Мой вопрос будет таким: какую стратегию кэширования, по вашему мнению, стоит для этого сценария? Как я могу иметь кеш только для данных, которые лениво загружаются через HTTP? Я хотел бы реализовать кеш, срок действия которого может истечь как по времени (скажем, 5 минут), так и когда пользователь выполняет действие, которое должно сделать этот текущий кеш недействительным.
Как я могу реализовать это и какой компромисс будет для хранения этих кешей? Желательно ли хранить эти данные в сеансе или в отдельной структуре на сервере? Должен ли я рассмотреть одну из тех внешних структур кэширования, как GigaSpaces и т. Д ...?
Заранее благодарим за любые советы, которые вы можете предложить по этой проблеме.