Что умеет решение
Модуль «Очистка устаревшего кеша» автоматически удаляет только устаревшие файлы кеша по расписанию, освобождая место на диске без замедления работы сайта. Актуальные данные кеша остаются нетронутыми.
Папки /bitrix/cache/, /bitrix/managed_cache/, /bitrix/stack_cache/, /bitrix/html_pages/ и /upload/resize_cache/ со временем разрастаются: старые файлы кеша накапливаются на диске, пока их не удалят вручную или сторонним скриптом. На крупных сайтах это приводит к накоплению гигабайтов лишних данных, замедлению бэкапов и достижению лимитов хостинга.
Решение реализовано в виде одного модуля. После установки агент самостоятельно, с интервалом в несколько часов, находит и удаляет только ненужные файлы. Рабочий кеш сохраняется, поэтому сайт не теряет производительность и не пересобирает страницы заново, как это происходит после полного сброса.
Функционал модуля:
Удаляет кеш с истёкшим сроком жизни. Срок определяется непосредственно из содержимого файла кеша, а не вычисляется по дате изменения. Используется тот же механизм, что и в штатной очистке Битрикса.
Очищает очередь отложенного удаления: при сбросе тегированного кеша Битрикс переименовывает каталоги в формат .~N и помещает их в очередь. Модуль завершает эту очистку.
Модуль выполняет дополнительную очистку кеша на основе возраста файлов. Для каждой директории установлен собственный порог в часах: cache, managed_cache, stack_cache, html_pages (включая композитный кеш), upload/resize_cache, upload/tmp. Режим отключен по умолчанию и активируется отдельно для каждой директории.
Скрипт не создает нагрузки на сервер: за один запуск удаляется ограниченное количество файлов в течение заданного времени, а оставшаяся часть обрабатывается при следующих запусках. Параллельное выполнение исключено благодаря механизму блокировки.
Результат работы отображается в гаджете на рабочем столе: количество удаленных файлов, освобожденный объем памяти и время до следующего запуска. Доступна кнопка «Запустить сейчас» без необходимости перезагрузки страницы.
Все запуски фиксируются в журнале событий системы Битрикс.
Очистка может выполняться как по расписанию (cron), так и вручную через команду php bitrix/modules/tenletters.oldcache/cli/clean.php.
Для разработчиков предусмотрены события OnBeforeOldCacheClean и OnAfterOldCacheClean: первое позволяет отменить запуск, второе возвращает статистику выполнения.
Безопасность
Исключено удаление всех файлов без разбора: удаляются только те, которые официально признаны устаревшими.
Модуль удаляет только файлы и пустые каталоги внутри указанных директорий очистки. Символические ссылки внутри них не обрабатываются. Файлы кеша удаляются по истечении срока их жизни только в том случае, если они физически находятся в папках cache, managed_cache или stack_cache.
Настройки и возможность ручного запуска доступны исключительно администраторам. AJAX-запросы защищены CSRF-токеном.
Модуль не создает таблиц в базе данных и не изменяет файлы ядра. При удалении модуля автоматически снимаются агент, настройки и копия гаджета.
Быстрая настройка
После установки модуль автоматически регистрирует агент с интервалом 6 часов. Очистка по сроку жизни включена сразу. При необходимости можно открыть настройки и активировать очистку по возрасту для конкретных директорий, а также изменить интервал и лимиты.
Частые вопросы
Удалит ли модуль необходимый кеш? Нет. Очистка по сроку жизни удаляет только файлы с истекшим сроком годности. Очистка по возрасту (отключена по умолчанию) может удалить и активный кеш старше установленного порога. Битрикс пересоберет его при следующем обращении, поэтому первые открытия страниц могут занять чуть больше времени.
Как часто запускать? По умолчанию — раз в 6 часов. Минимальный интервал составляет 300 секунд, более частый запуск обычно не требуется.
Если кеш накопился в избыточном объеме, увеличьте лимит файлов на один запуск или выполните ручную очистку несколько раз подряд. Фактическим ограничением длительности работы является временной лимит; счетчик лимита файлов учитывает только успешно удаленные файлы.
Чтобы отключить автоматическую очистку без удаления модуля, снимите галочку «Модуль включён». После этого агент и CLI-скрипт прекратят работу, но все настройки сохранятся, а возможность ручного запуска останется доступной.
Информацию о действиях модуля можно найти в гаджете и в журнале событий. Для просмотра используйте путь «Настройки → Журнал событий» и примените фильтр по модулю tenletters.oldcache. Ссылка на журнал доступна непосредственно на странице настроек.
Если нужен «Очистка устаревшего кеша», General iT может помочь с установкой, настройкой и технической проверкой модуля после подключения.