Перейти к основному содержанию

info@vmn.by

Как автоматически очистить кеш Drupal 10 по расписанию

Опубликовано admin -

Бывают случаи, когда вам необходимо очищать кеш Drupal по определенному расписанию, например, у вас на сайте в шаблоне выводится текущая дата и на следующие сутки, в результате кеширования страниц, вы будете видеть некоторое время старую дату, до того момента, пока не будет сброшен кеш.

Вывод текущий даты в page.html.twig

В page.html.twig мы добавляем функцию current_date, в которой указываем заранее созданный формат даты.

{% set current_date = date()|date('U')|format_date('название_шаблона_формата_даты') %}

И уже в нужном регионе выводим дату, которая будет динамически меняться:

{{ current_date|placeholder|striptags }}

Настройка кеширования по расписанию в Drupal 10

Есть множество способов, чтобы автоматизировать очистку кеша, но наиболее часто встречаемые следующие:

  1. Настройка очистка кеша с помощью модуля CacheFlush (доступен для версии Drupal 9 на момент написания материала, для 10 версии нужен патч)
  2. Настройка очистки кеша с использованием Drush и планировщика задач Cron.

Мы считаем, что наиболее удобный второй вариант, так как нет необходимости устанавливать дополнительные модули, а все действия будут работать на стороне сервера.

Автоматизация очистки кеша с помощью Drush и Cron

В зависимости как настроено веб-окружение на сервере или веб-хостинге, установка Drush отличается в каждом конкретном случае. Поэтому перед началом ввода команд убедитесь, что на вашем тарифном плане поддерживается Composer и Drush.

Мы рассмотрим процесс автоматизации на базе классического Unix-хостинга с панелью управления Cpanel.

С помощью командной строки перейдите в корневой каталог сайта и с помощью команды drush status найдите путь к PHP binary и к Drush script. Данные url будут необходимы для запуска команд в cron.

Drush status

Далее необходимо перейти в планировщик задач, настроить периодичность выполнения скрипта и ввести команду на очистку кеша drush cache-rebuild (drush cr).

Примеры заданий Crontab для виртуального хостинга:

cd /home/название_учетной_записи/домен_проекта/public_html && /home/название_учетной_записи/домен_проекта/public_html/vendor/bin/drush cr
cd /var/www/название_учетной_записи/public_html/домен && /opt/php/8.1/bin/php /var/www/название_учетной_записи/vendor/bin/drush cr

Все готово, не забудьте проверить работу cron, используя ящик электронной почты для уведомлений или с записью в лог-файл, используя команду

> cron_log.txt 2>&1