То, что вы делаете, называется фрагментным кэшированием в Rails.
Rails Кэширование фрагментов будет продолжаться до тех пор, пока не произойдет первое из следующих действий
- Вы звоните
expire_fragment
- Срок действия вашего очистителя истекает, фрагмент, все фрагменты, все и т. Д.
- Срок действия вашего хранилища кеша истекает
Срок действия хранилища кеша зависит от того, какой магазинваше приложение использует.Если вы используете файловую систему, кэш может длиться очень долго (дни, недели и т. Д.).
Добавлено Если вы используете memcache в качестве хранилища, memcache имеетобщее время истечения.Кроме того, в memcache истекает срок действия элементов в порядке старшего касания, срок действия которого истек, если вы ограничиваете общий размер memcache, и при добавлении нового значения ему не хватает места.
Авто истекает AХороший метод для истечения срока действия элементов кэша - хранить их в memcache и автоматически истекать их при наличии свежих данных.Сделайте это, используя номера версий в ключах кеша.См. Секрет Memcached
Re: Срок действия истекает через 30 минут Один из способов сделать это - использовать memcache и установить общее время истечения 30 минут.Или у вас может быть задание cron (или delay_job, или другой исполнитель заданий), которое будет вызывать expire_fragment каждые 30 минут.