Настройка сброса неиспользуемого кэша
Для постоянного сброса неиспользуемого кэша на сайте, необходимо создать агент, который будет выполняться регулярно.
Добавление функции для сброса неиспользуемого кэша
В файле/bitrix/php_interface/init.php
создайте следующую функцию: function ClearUnusedCacheAgent() { // Сбрасываем только неиспользуемый кэш BXClearCache(false); // Логирование выполнения (опционально) file_put_contents( $_SERVER['DOCUMENT_ROOT'] . '/bitrix/cache/unused_cache_log.txt', "Unused cache cleared at " . date('Y-m-d H:i:s') . PHP_EOL, FILE_APPEND ); // Возврат функции агента для повторного выполнения return "ClearUnusedCacheAgent();"; }
Добавление агента в админку
- Перейдите в Настройки → Настройки продукта → Агенты
- Нажмите "Добавить агент"
- Имя функции:
ClearUnusedCacheAgent();
- Интервал выполнения: Минимум 5 минут (например,
300
секунд) - Модуль:
main
Настройка полного сброса кэша с периодичностью
Для полного сброса кэша раз в неделю добавьте следующую функцию и агент.
Добавление функции для полного сброса кэша
function ClearAllCacheAgent() { // Подключаем основной модуль if (!\Bitrix\Main\Loader::includeModule('main')) { // Логируем ошибку, если модуль не загружен file_put_contents( $_SERVER['DOCUMENT_ROOT'] . '/upload/error_log.txt', "Module 'main' not loaded at " . date('Y-m-d H:i:s') . PHP_EOL, FILE_APPEND ); return false; // Завершаем выполнение, если модуль не загружен } try { // Сброс HTML-кэша BXClearCache(true); // Сброс кэша компонентов $cache = \Bitrix\Main\Data\Cache::createInstance(); $cache->cleanDir(); // Сброс управляемого кэша global $CACHE_MANAGER; if (is_object($CACHE_MANAGER)) { $CACHE_MANAGER->CleanAll(); } else { // Логируем ошибку, если объект $CACHE_MANAGER не существует file_put_contents( $_SERVER['DOCUMENT_ROOT'] . '/upload/error_log.txt', "CACHE_MANAGER is not initialized at " . date('Y-m-d H:i:s') . PHP_EOL, FILE_APPEND ); } // Логируем успешное выполнение file_put_contents( $_SERVER['DOCUMENT_ROOT'] . '/upload/clear_cache_log.txt', "Cache cleared at " . date('Y-m-d H:i:s') . PHP_EOL, FILE_APPEND ); } catch (\Exception $e) { // Логируем исключение, если оно произошло file_put_contents( $_SERVER['DOCUMENT_ROOT'] . '/upload/error_log.txt', "Error: " . $e->getMessage() . " at " . date('Y-m-d H:i:s') . PHP_EOL, FILE_APPEND ); return false; // Завершаем выполнение при ошибке } // Возвращаем функцию агента для повторного запуска return "ClearAllCacheAgent();"; }
Добавление агента для полного сброса кэша
- Перейдите в Настройки → Настройки продукта → Агенты
- Нажмите "Добавить агент"
- Имя функции:
ClearAllCacheAgent();
- Интервал выполнения: 1 раз в неделю (например,
604800
секунд) - Модуль:
main
3. Проверка и тестирование
- Убедитесь, что агенты создаются без ошибок.
- Выполните агенты вручную для тестирования через админку.
- Проверяйте журналы (
unused_cache_log.txt
иclear_cache_log.txt
) после выполнения полных и частичных сбросов кэша.
Теперь ваш сайт будет регулярно очищать неиспользуемый кэш, а также полностью обновлять кэш раз в неделю. Это обеспечит оптимальную производительность сайта и минимизацию нагрузки.
Повышайте производительность вашего сайта с помощью автоматизации кэширования от Kamensky-lab — профессиональная настройка и поддержка для вашего бизнеса.