Кэширование временных страниц в Rails - PullRequest
1 голос
/ 19 февраля 2010

В проекте, над которым я работаю, я запрашиваю данные из внешнего API в моем контроллере, который затем отображается в представлении. Недавно я начал сталкиваться с исключениями, возникающими из-за ограничений скорости, которые вызваны чрезмерными вызовами API. Чтобы это исправить, я предполагаю, что мне нужно реализовать какую-то систему кеширования. Я читал о кэшировании страниц в рельсах, и это, похоже, не решает мою проблему, так как я не использую модели из собственной базы данных. Поэтому мне было интересно, существует ли простой способ кэширования страницы по времени, чтобы новые данные можно было запрашивать через API очень часто.

Надеюсь, это имеет смысл - я довольно новичок в Ruby on Rails и никогда раньше не работал с какой-либо системой кеширования.

Ответы [ 3 ]

3 голосов
/ 19 февраля 2010

Memcached имеет истечение времени, о котором вы говорите, и, на мой взгляд, отлично подходит для кэширования наиболее распространенных объектов, включая страницы.

Его действительно легко установить, и Rails готов его использовать.a с конфигурацией в одну строку для memcached.

Следующий скринкаст был очень полезен для изучения memcached:

http://railslab.newrelic.com/2009/02/19/episode-8-memcached

На самом деле, я рекомендую всю серию, так какэто чрезвычайно полезно.

Вот сайт memcached:

http://memcached.org

Если вы более ручной тип, вы всегда можете создать задание cron, которое будет запускаться один раз в каждом.несколько минут и генерирует новый файл.

Надеюсь, это поможет!

1 голос
/ 19 февраля 2010

Кажется, для этого нет встроенного механизма. Вы можете попробовать решение этого пользователя , однако.

0 голосов
/ 19 августа 2015

Если вы хотите кэш на основе времени, вы можете использовать etag. Посмотрите на это документы

...