Оптимизация буфера импорта прайсов(исключение затормаживания работы страницы прайсов при переполнении буфера импорта) — различия между версиями

Материал из MstarProject Manual
Перейти к: навигация, поиск
(Новая страница: «=== Описание механизма === Функционал предназначен для оптимизации загрузки файлов прайсо…»)
 
(Описание механизма)
 
Строка 10: Строка 10:
  
 
В новом алгоритме после получения данных с файлов прайсов перенос их в прайс сайта происходит частями в фоне, что не дает блокировать ни сайт, ни сервер.
 
В новом алгоритме после получения данных с файлов прайсов перенос их в прайс сайта происходит частями в фоне, что не дает блокировать ни сайт, ни сервер.
 +
<br>
 +
Так же добавлено несколько важных констант:<br>
 +
<br>
 +
'''price:is_stop_load''' - полная остановка загрузки прайсов<br>
 +
'''price:limit_board_records_buffer''' - ограничение на размер буфера, по умолчанию 2млн. записей, если в буфере насобиралось больше записей, чем указано в константе, процесс обработки следующего файла не стартует, ожидает, пока буфер не будет обработан/очищен.<br>
 +
'''price:limit_board_records_cron_buffer''' - граничное значение крон-буфера, по умолчанию 5млн. записей.<br>
 +
По крону каждый час (константа '''price_cron_check_status:time_board_letter_minutes''') делается контроль и если кол-во записей превышает указанные значения в константах, выполниться отправка письма на почтовые ящики из константы '''price_cron_check_status:alert_emails''' с информацией о возможных проблемах с загрузкой прайсов.<br>
 +
<br>
 +
Так же как и раньше остается проверка на сбой при приеме прайса, проверка по константе '''price:break_global_load_file_in_minutes''', по умолчанию 60 минут, если по загружаемому файлу нет активности более этого интервала, прием его переходит в статус "Остановлен", а его записи, если они есть удаляются из буфера.<br>
 +
 +
  
 
<pre>Естимейт базовой версии задания - 5ч</pre>
 
<pre>Естимейт базовой версии задания - 5ч</pre>
  
 
'''Вернуться к списку модулей:''' [[Модули_пакет_Експерт_-_Документация]]
 
'''Вернуться к списку модулей:''' [[Модули_пакет_Експерт_-_Документация]]

Текущая версия на 09:37, 5 января 2022

Описание механизма

Функционал предназначен для оптимизации загрузки файлов прайсов на сайт.

Это особенно актуально, если в загружаемых файлах идет более 400-500 тыс позиций. Когда сайт еще не заполнен данными, то стандартный алгоритм справляется с нагрузкой. Но по мере роста кол-ва записей в таблице прайса проекта, загрузка файлов с ценами на сайт будет замедляться.

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

В новом алгоритме после получения данных с файлов прайсов перенос их в прайс сайта происходит частями в фоне, что не дает блокировать ни сайт, ни сервер.
Так же добавлено несколько важных констант:

price:is_stop_load - полная остановка загрузки прайсов
price:limit_board_records_buffer - ограничение на размер буфера, по умолчанию 2млн. записей, если в буфере насобиралось больше записей, чем указано в константе, процесс обработки следующего файла не стартует, ожидает, пока буфер не будет обработан/очищен.
price:limit_board_records_cron_buffer - граничное значение крон-буфера, по умолчанию 5млн. записей.
По крону каждый час (константа price_cron_check_status:time_board_letter_minutes) делается контроль и если кол-во записей превышает указанные значения в константах, выполниться отправка письма на почтовые ящики из константы price_cron_check_status:alert_emails с информацией о возможных проблемах с загрузкой прайсов.

Так же как и раньше остается проверка на сбой при приеме прайса, проверка по константе price:break_global_load_file_in_minutes, по умолчанию 60 минут, если по загружаемому файлу нет активности более этого интервала, прием его переходит в статус "Остановлен", а его записи, если они есть удаляются из буфера.


Естимейт базовой версии задания - 5ч

Вернуться к списку модулей: Модули_пакет_Експерт_-_Документация