Введите поисковый запрос

Автоматическая отчистка устаревшего кеша на cron bitrix clean_expire_cache();

Проблема многих сайтов на Битриксе - неочищенный кеш! Сайт постоянно складывал в кеш страницы, место начает заполняться, и приходиться постоянно очищать кеш в ручную. Знакомо? Давайте решим эту проблему
Мой клиент решал эту проблему путем напоминания в телефоне  - "Очистит кеш на сайте"! Да реально, каждую неделю заходил и очищал в ручную.

Бред! А если запустить рекламную кампанию, то трафик то увеличится, страниц в кеше станет еще больше, к тому же страница может измениться, а посетителю отдается старая, это в корне не верно,  вот именно по этому я и решил переложить это все на cron, благо в bitrix API очень продумано, не зря старались, в итоге поразмыслив в dev, обнаружил функцию clean_expire_cache();, которую можно как раз использовать для этого.

Итак идем по пути /bitrix/php_interface/ и 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();";
    }
}

Далее переходим в админку bitrix и создаем агента на странице


Настройки > Настройки продукта > Агенты

Настраиваем так:

  • Функция clean_expire_cache();

  • Сортировка: 100 

  • Интервал (сек): 10. 

Вот и все.

Код работает циклично и возобновляется там где остановился, помимо этого предусмотрена работа на cron и на хитах. В скрипте помечен участок кода, можно изменить эти значения. Интервал также можно задать не 10 секунд, а минуту, к примеру.



Комментарии 3

  • Роман28.04.2026 02:30:26
    Повесил clean_expire_cache() на крон, но managed-кэш не чистится. Так и должно быть?
    • Денис28.04.2026 14:12:16
      Да, эта функция чистит только устаревший файловый кэш. Managed-кэш и композит живут по своим тегам и инвалидируются сами — их насильно трогать не нужно.
  • Николай04.07.2026 20:03:59
    Клиент с напоминанием в телефоне «очистить кэш» — это буквально про меня было))) Поставил крон, забыл про проблему.

Оставить комментарий


Стоимость разработки сайта

Я не оцениваю работу в часах, так как в итоге, Вы все равно захотите узнать общую стоимость и срок выполнения.

При оценке проекта или работ я сразу называю стоимость и срок выполнения. Стоимость моих работ не обсуждается. Я называю реальную стоимость за которую готов взяться за ваш проект. Не торгуюсь и не объясняю "а почему это стоит столько?"
Денис Бунаков

Узнать точную стоимость разработки сайта или приложения: Для этого я могу попросить Вас заполнить какой нибудь бриф, но зачем Вам это надо?:

Оставить заявку

И мы все спокойно обсудим либо по телефону, либо удобным для Вас способом например в месенджере

Часто задаваемые вопросы

  • На какой CMS создаете сайты в Новосибирске?
    Обычно мы используем для работы CMS-систему «1С-Битрикс» т.к это наиболее надежная и удобная CMS. Так же она достаточно гибка для разработки на котором можно от обычных сайтов визиток до полноценный масштабных порталов и даже маркетплейсов
  • Какие гарантии есть на создание сайта в Новосибирске?
    Я предлагаю гарантию на исправление ошибок и техническую поддержку в течение 12 месяцев (1 года) после запуска сайта. Это включает в себя устранение багов и обеспечение корректной работы всех функций. Я также гарантируем соблюдение сроков и качества выполнения работ. Я на столько уверен в качестве своих работ, что готов давать такую большую гарантию
  • Можно ли в дальнейшем менять самостоятельно информацию или только с помощью вас?
    Да, вы сможете самостоятельно изменять информацию на сайте, либо загружать их в электронном виде пакетными методами. Предоставляем подробные инструкции и обучающие материалы как всем пользоваться, чтобы вы могли легко управлять контентом. Однако, если у вас возникнут сложности или потребуется помощь, наша команда всегда готова помочь.
  • Вы оказываете услуги по созданию сайта и технической поддержки по договору ?
    Да, мы работаем только по договору как с юридическими, так и с физическими лицами. Вся необходимая бухгалтерская отчетность предоставляется своевременно.
  • Можно ли перенести уже существующий сайт на платформу 1С-Битрикс?
    Да, перенос сайта на другую платформу возможен, но это сложный процесс, который требует внимательной подготовки. Важно сохранить все данные (контент, изображения, SEO-настройки) и перенести функционал без потерь. Процесс может включать переписывание части кода и настройку новой платформы. Это особенно актуально, если текущая платформа не поддерживает новые функции или технологии. В моем портфолио есть сайт CибНИА имени С. А. Чаплыгина который как раз я полностью перенес на систему 1С битрикс с сохранением всего функционала
  • Чем отличается разработка сайта на шаблоне от индивидуального проекта?
    Сайт на шаблоне создается на основе готового дизайна, что снижает стоимость и ускоряет процесс разработки. Любой шаблон можно кастомизировать под себя НО! Иногда кастомизация может выйти дороже чем индивидуальная разработка. Дополнительно, в шаблонном решение может не быть нужного функционала. Индивидуальный проект создается с нуля по уникальному дизайну и потребностям клиента, что позволяет гибко настраивать функционал, но требует больше времени и ресурсов.
  • Следите ли вы за скоростью загрузки сайта?
    Да на всех этапах скорость загрузки сайта, чистота и оптимизация кода проходят тестирование и правки при ошибках, если хотите, то вы можете принимать активное участие на всех этапах.
  • Какая стоимость разработки сайта в Новосибирске и Москве?
    Стоимость создания и разработки сайта варьируется в зависимости от его сложности и функциональности. Например, базовый вариант может стоить от 100 000 рублей, в то время как более сложные проекты, например сайты интернет-магазинов или корпоративные порталы, могут стоить от 550 000 рублей и выше. Я готов обсудить требования и предложить оптимальное решение, соответствующее вашему бюджету. От региона присутствия сайта стоимость моих работ не меняется. Я не считаю что стоимость сайта в Москве должна превышать стоимость сайта в Новосибирске
  • Как будет работать мой сайт на мобильном телефоне?
    Я разрабатываю сайты с учетом адаптивного дизайна, что обеспечивает их корректное отображение и функциональность на всех устройствах, включая мобильные телефоны и планшеты. Это означает, что сайт будет автоматически подстраиваться под размер экрана, обеспечивая удобство использования и быстрое время загрузки на мобильных устройствах. Мои сайты отличаются доступным и привлекательным юзабилити, которые работают корректно и максимально профессионально увеличивают вашу прибыль.
  • Сколько времени уходит на создание сайта под ключ?
    Сроки разработки интернет-ресурса зависят от сложности проекта, в среднем, создание нового сайта занимает от 4 до 15 недель. Более сложные сайты могут потребовать больше времени. Но бывают проекты которые занимают до 1 года на разработку. Все очень индивидуально и примерные сроки я смогу озвучить после знакомства с Вами