Автоматическая очистка кеша Битрикс
21 июня 2021 12:31:19
6439 просмотров
В админке очистка кеша находится в меню Настройки, Настройки продукта, Автокеширование. В коде это выглядит следующим образом:
//меню
if($_REQUEST["cachetype"] == "menu")
{
$GLOBALS["CACHE_MANAGER"]->CleanDir("menu");
CBitrixComponent::clearComponentCache("bitrix:menu");
}
//весь управляемый
elseif($_REQUEST["cachetype"] == "managed")
{
$GLOBALS["CACHE_MANAGER"]->CleanAll();
$GLOBALS["stackCacheManager"]->CleanAll();
}
//Все страницы HTML кеша
elseif($_REQUEST["cachetype"] == "html")
{
$page = \Bitrix\Main\Composite\Page::getInstance();
$page->deleteAll();
}
//Все
elseif($_REQUEST["cachetype"] == "all")
{
BXClearCache(true);
$GLOBALS["CACHE_MANAGER"]->CleanAll();
$GLOBALS["stackCacheManager"]->CleanAll();
$taggedCache = \Bitrix\Main\Application::getInstance()->getTaggedCache();
$taggedCache->deleteAllTags();
$page = \Bitrix\Main\Composite\Page::getInstance();
$page->deleteAll();
}
Для автоматизации сброса кеша создадим скрипт, выполнение которого повесим на крон.
Пример скрипта для очистки всего кеша:
<? $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../../..");
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS",true);
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
@set_time_limit(0);
BXClearCache(true);
$GLOBALS["CACHE_MANAGER"]->CleanAll();
$GLOBALS["stackCacheManager"]->CleanAll();
$taggedCache = \Bitrix\Main\Application::getInstance()->getTaggedCache();
$taggedCache->deleteAllTags();
$page = \Bitrix\Main\Composite\Page::getInstance();
$page->deleteAll(); ?>
Создаем файл, например clearcache_cron.php, закидываем туда код.
Далее остается повесить выполнение этого файла на крон. На хостингах обычно размещают инструкцию по работе с планировщиком.
Материалы по теме
19 ноября 2021 15:10:37
Как очистить очередь писем на отправку Bitrix
Бывают случаи, когда на сайте есть проблемы с отправкой почты. Перед тем как исправлять ошибку, стоит обратить внимание на очередь писем которые не были отправлены.
22 февраля 2018 00:55:00
Ajax форма во всплывающем окне Битрикс
В большинстве случаев, почти на любом сайте используется форма обратной связи, заказа звонка, оформления заказа или ещё чего-нибудь. И конечно же, лучше всего, если такая форма будет работать без перезагрузки страницы, то есть в ajax-режиме.