17.11.2017 11:20
nik_ll
 
друзья, просьба помочь советом.
у клиента большое количество дисконтных карт (более 70000). диапазоны карт абсолютно рваные + карты регулярно кочуют по категориям (зависит не только от оборота) - карты грузятся из 1С с указанием накоплений(накопления тоже считаются в 1С) и процента скидки. обновления карт грузятся регулярно. пока неиспользовался серверный прцессинг карт (флаг в настройке модулей - выключен) - все работало шустро и без нареканий - карты добавлялись мгновенно (прогружены были только экземпляры карт, без диапазонов). при включении серверного процессинга - появилась необходимость прогружать диапазоны (зачем-то, без этого карты касса не находит, хотя в базе cards есть). т.к. карты идут из 1с и диапазоны рваные и изменчивые - были прогружены единичные диапазоны для каждой карты: internal-card-type guid="444465" name="скидочные 7" personalized="true" percentage-discount="7" deleted="false" card-range guid="4100000256776" startField="4100000256776" countField="1" deleted="false"/ /internal-card-type процессинг работает, но карта в чек добавляется около 30-40-120 сек...
вопрос как это можно оптимизировать...
20.11.2017 12:09
asfw7qlm2
 
Мне кажется, проблема как раз из-за большого количества диапазонов. Долго становится уже на этапе определения того, что сделал кассир: просканировал ШК товара, код или введенные данные являются картой. Диапазон тут играет роль общего идентификатора, если введенное на кассе, условно назовем "число" входит в диапазон карт, то откладываем поиск по всяким товарам и их шк, а работаем только с модулем карты. Далее уже непосредственно по связке номер карты - категория содержащая процент.
Для нормальной работы вам достаточно одного "огромного" диапазона ну или, скажем максимум нескольких десятков диапазонов, включающих все карты которые вы присоединяете к любой одной, назовем "базовой" категории. А далее грузите карты по принципу:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<cards-catalog>
<internal-card number="4810191713479" status="ACTIVE" deleted="False" percentage-discount="2"/>
<internal-card number="4810194810199" status="ACTIVE" deleted="False" percentage-discount="3"/>
<internal-card number="4810195109107" status="ACTIVE" deleted="False" percentage-discount="5"/>
</cards-catalog>
таким образом, SR сам создаст категории с нужным процентом, а карты к ним перепривяжутся, как будто бы был переход в другую категорию.
Это мое скромное понимание ситуации, может я и ошибаюсь. Посмотрите- попробуйте, может и прокатит такой вариант. Разумеется не забудьте сделать Бэкап))
21.11.2017 20:49
nik_ll
 
Да, все так. Ещё раз спасибо. Изначально вопрос и неверное решение родились из-за непонимания необходимости этих диапазонов... Просто я привык отделять карты от котлет - префиксом... Прогрузил 20 диапазонов, все работает.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.