Нагрузка на базу данных и скорость обмена (с версии 1.9.7)

Основное изменение с этой версией модуля заключается в том, что для учета только измененных товаров необходимо проставить одну галочку:

Данная галочка работает в паре с опцией из вкладки "прочее":

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

Подробный пример работы этой галочки

Исходные данные:

  • Представим у вас в каталоге 1 000 товаров.

  • 500 товаров вы массово изменили в 16:30.

  • Модуль импортирует по 100 товаров раз в 1 минуту

  • Вы ставите эту галочку в 16:35 и сохраняете настройки модуля

  • Интервал стоит 30 минут во вкладке "прочее"

Первый вызов агента после сохранения настроек модуля:

  • Агент вызывается раз в 1 минуту, следовательно примерно в 16:36 у вас он вызовется первый раз (настройки вы сохранили в 16:35).

  • Агент сделает запрос на 100 товаров, которые были изменены начиная с 16:06 (16:36 минус 30 минут).

  • Агенту будет известно что с этого момента были изменены 500 товаров.

  • Агент в следующие четыре запуска обработает все 500 товаров (итого 5 запусков по 100 товаров равно 500 товаров).

Последующая работа агента:

  • Примерно в 16:41 (это будет 6-ой запуск агента после обработки 500 товаров) агент будет вызван очередной раз.

  • Теперь агент будет искать измененные товары начиная с 16:41.

  • Агент получит 0 товаров для обработки, т.к. предыдущие изменения были в 16:30.

  • Следовательно этот и последующие запуски агента будут просто проверкой на то, изменились ли товары или нет.

  • Как только появятся измененные товары, агент сразу же будет их выгружать.

Обработка исключений:

  • Представим что по какой-то причине сломался агент (он не вызывается в принципе).

  • Вы починили агент на следующий день (к примеру была ошибка в БД).

  • Тогда модуль будет брать измененные товары не текущего момента, а с того момента когда последний раз успешно отработал агент, таким образом он не пропустит изменений по товарам.

Last updated