Главная > Критические обновления > Рекламные места и кэширование категорий новостей

Рекламные места и кэширование категорий новостей


27 февраля 2014. Разместил: admin

На некоторых серверах замечена следующая проблема. Файл хранения информации по рекламным местам, периодически повреждается, что приводит к полной потере информации по рекламным местам.

 

В результате администратору каталога необходимо, делать резервную копию рекламных мест и в случае повреждения, восстанавливать. Была идея отказаться от хранения информации в файле, а перевести работу модуля на MySQL и оптимизировать алгоритм записи информации. Этот алгоритм будет реализован позже, а пока представляем решение, по автоматическому созданию дубля файла рекламных мест. Тем самым, система будет хранить запасной вариант файла и в случае повреждения основного файла, информация будет браться с дубликата и записываться в основной файл.

 

Создание дубля файла выполняется автоматически, при создании или редактировании рекламных мест в панели администратора. Т.е. после обновления любого рекламного места, система создаст автоматически дубль файла reklama.dat с расширением .bak. Также система поступит в случае, создания нового рекламного места.

 

Кроме этого, система будет автоматически создавать дубликат файла, через заданный промежуток времени.

 

Также, была обнаружена проблема по кэшированию списка категорий для новостного модуля. Система каждый раз записывала файл кэша, при обращении к новостной ленте, что опять-таки приводила к повреждению файла кэша на некоторых серверах. В данном решении запись кэша выполняется только в случае добавления или изменения информации в категориях новостного модуля. В остальных случаях, система просто читает данные кэша.

 

Для установки данного патча, необходимо:

 

- загрузить файлы на сервер, где установлен у Вас скрипт каталога, при этом рекомендуем сделать резервные копии исходных файлов

- установить права записи на файл sytem/reklama.bak777

- в файле includes/reklama_classes.php настроить интервал создания дубля файла в строке:

 

const time_bak_file     = 10800; // сек, по умолчанию через 3 часа, через сколько времени делать копию файла, 0 - укажите если никогда

 

Интервал записи дубля не должен быть очень коротким, в противном случае, это возможно вызовет повреждение уже обоих файлов. Время дублирования, должно задаваться, с учетом ранее выявленной ошибки работы модуля.

 

У тех, у кого отключен, режим кэширования новостей, могут его включить и проследить за изменениями работы новостного модуля. В случае ошибки, с главной страницы каталога в УРЛ ссылки новости пропадает название категории и образуется двойной слэш.

 

Включить кэширование категорий новостей можно в conf/config.php

 


<p>// Кэшировать категории новостей</p>
<p>&nbsp;$def_news_cache_cat="YES";</p>

 

В любом случае, на время тестирования данного алгоритма рекомендуем создавать копии файлов system/reklama.dat reklama.bak

 

Скачать - У вас нет доступа к скачиванию файлов с нашего сервера

 

После тестирования, данных решений, файлы будут добавлены в дистрибутив скрипта.


Вернуться назад