Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
то ждем ваше обращение в нашей службе тех поддержки.
Вы регулярно очищаете кэш «Битрикс»? Никогда не забываете? А если нет, то как вы можете быть уверены, что посетители сайта видят обновленную версию, а не кэшированную? Предлагаем решение, агент для регулярной автоматической очистки кэша «Битрикс».
1. Настроим агент в Панели управления
Перейдя в Панели управления по адресу Настройки > Настройки продукта > Агенты,
создадим новый агент. Зададим настройки:
Функция: clean_expire_cache();
Сортировка: 100
Интервал (сек): 10
2. Создадим исполняемый файл агента
По адресу /bitrix/php_interface/ должен быть файл init.php. Если его нет, создайте его. Поместите в файл init.php следующий код:
3. Внимание, Cron!
Время работы скрипта различное и зависит от того, исполняется ли он на Cron или нет. Прверку выполняет приведенный ниже код. Если скрипт исполняется не на Cron, то время исполнения назначается в 1 секунду.
Скрипт работает пошагово, продолжает работу с того места, на котором остановился в предыдущем сеансе работы. Это обеспечивается следующим кодом:
Удачи!
-------------------------------
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!
Назад в раздел
1. Настроим агент в Панели управления
Перейдя в Панели управления по адресу Настройки > Настройки продукта > Агенты,
создадим новый агент. Зададим настройки:
Функция: clean_expire_cache();
Сортировка: 100
Интервал (сек): 10
2. Создадим исполняемый файл агента
По адресу /bitrix/php_interface/ должен быть файл init.php. Если его нет, создайте его. Поместите в файл init.php следующий код:
<? function clean_expire_cache($path = "") { if (!class_exists("CFileCacheCleaner")) { require_once ($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/cache_files_cleaner.php"); } $curentTime = mktime(); if (defined("BX_CRONTAB") && BX_CRONTAB === true) $endTime = time() + 5; //Если на кроне, то работаем 5 секунд else $endTime = time() + 1; //Если на хитах, то не более секунды //Работаем со всем кешем $obCacheCleaner = new CFileCacheCleaner("all"); if (!$obCacheCleaner->InitPath($path)) { //Произошла ошибка return "clean_expire_cache();"; } $obCacheCleaner->Start(); while ($file = $obCacheCleaner->GetNextFile()) { if (is_string($file)) { $date_expire = $obCacheCleaner->GetFileExpiration($file); if ($date_expire) { if ($date_expire < $curentTime) { unlink($file); } } if (time() >= $endTime) break; } } if (is_string($file)) { return "clean_expire_cache(\"" . $file . "\");"; } else { return "clean_expire_cache();"; } }
3. Внимание, Cron!
Время работы скрипта различное и зависит от того, исполняется ли он на Cron или нет. Прверку выполняет приведенный ниже код. Если скрипт исполняется не на Cron, то время исполнения назначается в 1 секунду.
<? if (defined("BX_CRONTAB") && BX_CRONTAB === true) { $endTime = time() + 5; } //Если на кроне, то работаем 5 секунд else { $endTime = time() + 1; } //Если на хитах, то не более секунды
Скрипт работает пошагово, продолжает работу с того места, на котором остановился в предыдущем сеансе работы. Это обеспечивается следующим кодом:
<? if (is_string($file)) { return "clean_expire_cache(\"" . $file . "\");"; }
Удачи!
-------------------------------
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!
Назад в раздел
Подписаться на новые материалы раздела: