Очередь обеспечивает надежную доставку данных. При осуществлении обмена данными очередь дает следующие преимущества:

Загрузка справочников

Для файловой загрузки справочников кассовое и серверное программное обеспечение Artix использует очередь сообщений File-Queue.

Настройка File-Queue осуществляется в секции [FILEQUEUE]:

Наименование

Тип данных

Описание

Примечания

fileQueueRootстроковыйПуть до корневой директории файл-очереди

По умолчанию для кассы /linuxcash/cash/data/queues.

По умолчанию для КС /opt/queues

queueChunkSizeцелочисленный

Количество aif-объектов в одном сообщении файл-очереди

По умолчанию 25000


[FILEQUEUE]

; Путь до корневой директории файл-очереди
fileQueueRoot = /linuxcash/cash/data/queues

; Количество aif-объектов в одном сообщении файл-очереди
queueChunkSize = 25000


[FILEQUEUE]

; Путь до корневой директории файл-очереди
fileQueueRoot = /opt/queues

; Количество aif-объектов в одном сообщении файл-очереди
queueChunkSize = 25000

Механизм работы очереди File-Queue:

  1. От сервисов Sync-agent или Exchanger поступает справочник, который будет расформирован на json-файлы с расширением *.objs, они будут помещены в директорию:
  2. Если на кассу поступает справочник с большим количеством объектов, то он будет разбит на несколько файлов. Количество объектов в одном файле задается настройкой queueChunkSize. После того как справочник будет разбит на части, формируется еще один файл *.objs с данными об окончании транзакции.
  3. После завершения формирования всех файлов объекты будут отправлены сервисом Nes в базу данных.
  4. После завершения загрузки все json-файлы будут удалены из директории artix.loaddict.<...>.

Если во время расформирования справочника на json-файлы произошла ошибка, то будет осуществлена повторная попытка формирования файлов *.objs.

В случае повреждения файла с объектами *.objs в базу данных загружаются данные из оставшихся файлов *.objs.


Для корректной загрузки справочников значения настроек fileQueueRoot в конфигурационных файлах exchangers.ini и nes_load.ini должны совпадать.