Задать вопрос
Freika
@Freika
Senior Ruby on Rails developer

Как кэшировать принимаемый json в Rails?

Ситуация: я обрабатываю большой json, получаемый с удаленного сервера, содержимое json изменяется время от времени, поэтому его нужно обновлять.

Вопрос: как мне закешировать полученные данные(порядка 15-30 мегабайт, тянуть каждый раз - ощутимо долго выходит), чтобы работать с ними, а когда будет сигнал, что пора обновить содержимое, перекачивать json заново?
  • Вопрос задан
  • 2378 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Skillbox
    Middle-разработчик игр на Unity
    3 месяца
    Далее
  • ProductStar
    Python и Django: бэкенд-разработка
    2 месяца
    Далее
Решения вопроса 1
AMar4enko
@AMar4enko
Вы не знаете, как закешировать, или не знаете, где взять сигнал, что данные обновились?
Кешировать можете в Redis. Для проверки актуальности данных можете делать HEAD перед самим запросом, он вам по идее вернет либо дату модификации контента, либо E-Tag.
Алгоритм примерно такой:
1. Вытащили из Redis дату модификации или E-Tag.
2. Запросили мета-информацию о JSON через HEAD.
3. Сравнили мета-информацию из HEAD с тем, что вытащили из Redis
4. Если совпадают, то у вас актуальный контент
5. Если не совпадают - вытаскиваете JSON через GET, сохраняете в Redis результат и метаинформацию.
6. Повторяете с интервалом в 5 минут, например.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ИТРУМ Ростов-на-Дону
от 75 000 ₽
СофтМоушен Санкт-Петербург
от 150 000 до 250 000 ₽
Яндекс Москва
от 180 000 до 350 000 ₽