Долгая обработка транзакций лояльности и чеков с кассы

Публичное пространство

Долгая обработка транзакций лояльности и чеков с кассы

У некотрых клиентов, у которых используется топология Centrum->Кассы и(или) нестабильная связь до сервера, испытывают проблему с долгой загрузкой/обработкой информации о продажах. 

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

В таком раскладе данные обрабатываются дольше. 1 задание с 50 чеками или тр. лояльности обрабатывается гораздо дольше чем 50 заданий по 1 документу. На это заведена ошибка SRB-1218.

Очередь чеков и сколько документов в пачке можно посмотреть в таблице od_inbound_files бд set_operday

Тр. лояльности в таблице loy_inbound_files бд set_loyal.

Статусы означают:

0 - не обработано

1 - обработано

>2 - обработано с ошибкой

Варианты решения:

1. Рано или поздно все загрузится. Когда закончится обработка "больших" заданий все пойдет гораздо быстрее.

2. Выставить большим заданиям статус 2, тем самым пропустив последующие вперед. Ночью вернуть большие задания в обработку.

3. Самый действенный, но трудозатратный:

На каждой(проблемной) кассе произвести изменение настроек. Максимальный размер задания и частота отправления:

Тр. лояльности:

\storage\crystal-cash\modules\loyalty\loyalty-system-config.xml

<property name="loyTransactionReSendTimeout" value="10"/> <property name="maxLoytransactionCountInPack" value="2"/>

\storage\crystal-cash\modules\document\document-system-config.xml

<property name="documentsSearchInterval" value="10000"/> <property name="documentsMaxCount" value="2"/>

После внесенных изменений выполнить команду cash save и cash restart

Тем самым с кассы будет отправляться максимум 2 документа, каждые 10 сек, а не 100 каждую минуту. 

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