Как очистить кеш действий рельсов?(Rails.cache.clear не работает) - PullRequest
0 голосов
/ 30 декабря 2018

Как очистить кэш действий rails без перезапуска сервера?

У меня есть скрипт, который обновляет базу данных Postgres новыми данными.Я хотел бы очистить все кэшированные страницы после завершения скрипта.но я не могу добиться, чтобы это вступило в силу без полной перезагрузки сервера Heroku

Я пытался безуспешно:

  • Rails.cache.clear => ["/app/tmp/cache/bootsnap-compile-cache", "/app/tmp/cache/bootsnap-load-path-cache"]
  • rails tmp:cache:clear
  • rails assets:clean

config.cache_store явно не задан для производства (я видел смешанную информацию о том, какой кеш используется по умолчанию)

Я гарантировал, что в браузере нет кэширования (отключив кэширование в инструментах разработки и обойдя работника сервиса)

Я использую Heroku с ruby ​​2.5.3, rails 5.2.1.1 и actionpack-action_caching 1.2.0

Как узнать, что он не кэшируется на уровне базы данных или с использованием кэширования фрагментов?

Я добавил ведение журнала в действие, которое регистрирует только при первом доступе к страницепосле перезапуска

Обновление: Я удалил кэширование действий и вместо этого лучше оптимизировал SQL-запросы, используя энергичную загрузку.

1 Ответ

0 голосов
/ 30 декабря 2018

Как вы можете видеть здесь , хранилище кэша по умолчанию в производстве - mem_cache_store.Следовательно, вы должны иметь возможность очистить его различными способами, не перезапуская сервер.Мацей Менсфельд написал блог об этих способах.Я лично использую команду flush_all на сервере кеша, если Rails.cache.clear не действует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...