Оптимизация буфера импорта прайсов(исключение затормаживания работы страницы прайсов при переполнении буфера импорта) — различия между версиями
(Новая страница: «=== Описание механизма === Функционал предназначен для оптимизации загрузки файлов прайсо…») |
(→Описание механизма) |
||
Строка 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ч
Вернуться к списку модулей: Модули_пакет_Експерт_-_Документация