Использование файлов Cookie
Мы используем файлы cookie, разработанные нашими специалистами и третьими лицами, для анализа событий на нашем веб-сайте. Продолжая просмотр страниц нашего сайта, вы принимаете условия его использования. Более подробные сведения смотрите в Политике конфиденциальности.
Корзина
Ваша корзина пуста
Выберите в каталоге интересующий товар и нажмите кнопку "В корзину"
Отложенные товары
Отложенных товаров нет
Выберите в каталоге интересующий товар и нажмите кнопку "В избранное"
Заказать звонок
Компания Компания
ул. Курчатова 9 (БЦ МАГНЕТОН)
Войти
Готовый интернет-магазин на 1С-Битрикс
+7 (812)467-34-77
+7 (812)467-34-77
ул. Курчатова 9 (БЦ МАГНЕТОН)
с пн-пт 11:00-18:00 (уточняйте) сб-вс Выходные дни В не рабочее время забрать заказы можно по договоренности. т. +79110204387
Заказать звонок
Телефоны
+7 (812)467-34-77
Склад (север)

RSS
Оптимизация работы со скидками в Битрикс при повышении количества пользователей с разными типами скидок, Необходимость в оптимизации возникает уже после того, как количество активных пользователей переваливает за 100.
 

Необходимость в оптимизации возникает уже после того, как количество активных пользователей переваливает за 100.

В стандартном варианте скидки (правила корзины) считаются динамически, при каждом обновлении страницы.

И при повышении числа пользователей b2b портала или корзины до 1000

Приводит к фактически полному зависанию работы корзины даже на самых мощных конфигурациях

При этом наличие задаваемых вручную скидок, а также мультивалютности еще более осложняет ситуацию со скоростью отображения страницы.

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

В итоге, механизм получения данных и последующего вывода выглядит следующим образом:

1. При выгрузке скидок из 1с для каждого пользователя рассчитываются все его цены из созданных для него правил, и складываются в отдельную таблицу (в текущем варианте в MySQL, работа с другими хранилищами - дело отдельного этапа).

Цены рассчитываются достаточно продолжительное время в сравнении с адекватным временем отображения страницы, поэтому это наиболее удачное место для осуществления данной операции.

2. В компоненте Каталога корзины осуществляется выборка этих данных в JS-переменную, а в JS-компоненте - вывод.

При этом данные выбираются один раз, а дальше кешируются.

Механизм кэширования может пересматриваться в дальнейшем, в зависимости от насущных потребностей в скорости отображения. В текущем варианте используется APC cache, поскольку это стандартный механизм, идущий вместе с самим PHP.

Для работы кэша необходимо поставить соответствующее расширение.
В CentOS 7, на которой построена BitrixVM, это команды:

yum install php-pecl-apcu.x86_64
yum install php-pecl-apcu-bc.x86_64

3. В дальнейшем при росте числа пользователей планируется осуществлять мониторинг и доработки в соответствии с полученными данными (отдельным этапом).

Читают тему