Задать вопрос
@anton99zel
29а класс средней школы №7

Почему не читается кэш из файла, падает с ошибкой Страница недоступна?

Раньше работало, но в какой то момент перестало работать
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
   $APPLICATION->SetTitle("Продажи");
   $MAINUSER = '3'; 
   CModule::IncludeModule('highloadblock');
   use Bitrix\Highloadblock\HighloadBlockTable as HLBT;
   //Функция получения экземпляра класса:
   function GetEntityDataClass($HlBlockId) 
   {
       if (empty($HlBlockId) || $HlBlockId < 1){return false;}
       $hlblock = HLBT::getById($HlBlockId)->fetch();
       $entity = HLBT::compileEntity($hlblock);
       $entity_data_class = $entity->getDataClass();
       return $entity_data_class;
   };
   $arFilter = Array("UF_USER"=>$MAINUSER);
   //Запросим продажи
   $SalesData = GetEntityDataClass(4)::getList(array(
      'select' => array('*'),
      'filter' => $arFilter
   ));
   // Кешируем запросы
   use \Bitrix\Main\Data\Cache;
   $obCache = new CPHPCache();
   $cacheLifetime = 600; $cacheID = 'sales'.$MAINUSER; $cachePath = '/'.$cacheID;

   if( $obCache->InitCache($cacheLifetime, $cacheID, $cachePath) )
   {
      $vars = $obCache->GetVars();
      extract($vars); 
   }
   elseif( $obCache->StartDataCache()  )
   {
   while($el = $SalesData->fetch()){$sales[] = $el;};
   $obCache->EndDataCache(array('sales' => $sales));
   };
.......

Убираем часть кода из
// Кешируем запросы
   use \Bitrix\Main\Data\Cache;
   $obCache = new CPHPCache();
   $cacheLifetime = 600; $cacheID = 'sales'.$MAINUSER; $cachePath = '/'.$cacheID;

   if( $obCache->InitCache($cacheLifetime, $cacheID, $cachePath) )
   {
      $vars = $obCache->GetVars();
      extract($vars); 
   }
   elseif( $obCache->StartDataCache()  )
   {
   while($el = $SalesData->fetch()){$sales[] = $el;};
   $obCache->EndDataCache(array('sales' => $sales));
   };

Делая так:
// Кешируем запросы
   use \Bitrix\Main\Data\Cache;
   $obCache = new CPHPCache();
   $cacheLifetime = 600; $cacheID = 'sales'.$MAINUSER; $cachePath = '/'.$cacheID;

   if( $obCache->StartDataCache()  )
   {
   while($el = $SalesData->fetch()){$sales[] = $el;};
   $obCache->EndDataCache(array('sales' => $sales));
   };

работает, т.е. как будто не может прочитать кэш из файла.
Сам файл кэша создается, может из-за его размера ошибка (5 мегабайт)? Потому что аналогичный код в другом разделе работает.
  • Вопрос задан
  • 184 просмотра
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы