Сервис Nes
отвечает за перемещение объектов из очереди сообщений в базу данных кассовой программы и необходим для обеспечения загрузки справочников.
Работу сервиса Nes
обеспечивает пакет artix45-nes2
, который автоматически устанавливается в зависимостях пакета artix45-exchangers
. При установке пакета создается директория /linuxcash/cash/exchangesystems/nes
, в которую размещаются конфигурационные и служебные файлы сервиса. Сервис Nes
запускается автоматически при включении кассовой программы.
Правила считывания конфигурационных файлов
Конфигурационные файлы представляют собой файлы формата *.ini
, в которых находятся настройки сервиса. Основным конфигурационным файлом является linuxcash/cash/exchangesystems/nes/config/nes_load.ini
, также настройки могут находиться в директории /linuxcash/cash/exchangesystems/nes/config/conf.d/.
Порядок считывания настроек:
Сначала считываются настройки из основного конфигурационного файла
linuxcash/cash/exchangesystems/nes/config/nes_load.ini
.
Затем считываются настройки из конфигурационного файла директории
/linuxcash/cash/exchangesystems/nes/config/conf.d/
.
Настройки из директории /linuxcash/cash/exchangesystems/nes/config/conf.d/
являются самыми приоритетными. Если они заданы, то они будут использоваться в первую очередь.
Настройки работы сервиса задаются в конфигурационном файле /linuxcash/cash/exchangesystems/nes/config/nes_load.ini
, который разделен на секции:
[MAIN]
– обязательная секция, содержит настройки для работыNes
,[QUEUE/FILEQUEUE]
– секция содержит настройки очередей, с помощью которых можно сконфигурировать разрешенный размер очереди и разрешенное количество сообщений в очереди,[mysql]
– секция содержит настройки подключения к базе данных, а так же некоторые сервисные настройки,[CS]
– секция содержит настройки для авторизации на кассовом сервере.
Базовая настройка
Базовая настройка предполагает конфигурирование основных процессов сервиса загрузки.
Загрузчик обрабатывает данные с помощью процессов, для каждого из которых ведется журнал работы. Базовые настройки сервиса задаются в конфигурационном файле /linuxcash/cash/exchangesystems/nes/config/nes_load.ini
в секции [MAIN]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
logDirectory | строковый | Директория ведения журнала событий Nes. Если параметр не задан явно – берется значение по умолчанию | Значением по умолчанию является директория /linuxcash/logs/current | |
poolProcessSize | целочисленный | любое целое положительное число | Количество процессов, которые будут запущены для работы с данными | |
tablesWithoutCheck | строковый | Список таблиц, для которых не будет осуществлена проверка после загрузки справочников (указание таблиц позволяет ускорить заполнение таблиц данными при загрузке справочников, содержащих большое количество записей) | По умолчанию не задано. Пример настройки tablesWithoutCheck = card, client | |
errorsFilePath | строковый | Путь до файла с количеством ошибок сервиса | По умолчанию не задано. Пример настройки errorsFilePath = linuxcash/cash/file1.file Если значение параметра задано, то при наличии ошибок сервиса в указанной директории автоматически будет создан файл-флаг, который будет представлять собой json-объект вида: {"errorsCount": <количество_ошибок>} Если возникают новые ошибки в сервисе, то значение параметра |
Настройка работы очереди сообщений
Очередь сообщений необходима для обеспечения гарантированной доставки данных. Сервис Nes
определяет, каким образом будет произведено подключение к очереди и по какому протоколу будет производиться передача сообщений.
/linuxcash/cash/exchangesystems/nes/config/nes_load.ini
в секции [QUEUE]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
brokerHost | строковый | Хост брокера очередей | По умолчанию localhost | |
brokerPort | целочисленный | любое целое положительное число | Порт брокера очередей | По умолчанию 5672 |
user | строковый | Логин пользователя брокера очередей | По умолчанию guest | |
password | строковый | Пароль пользователя брокера очередей | По умолчанию guest | |
brokerType | строковый |
| Тип брокера очередей (на каком языке программирования написан) | По умолчанию cpp |
brokerRestPort | целочисленный | любое целое положительное число | Порт REST сервиса брокера. Если брокер типа java, то работаем с ним через REST | По умолчанию 9080 |
/linuxcash/cash/exchangesystems/nes/config/nes_load.ini
в секции [FILEQUEUE]
.
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
fileQueueRoot | строковый | Путь до корневой директории файл-очереди | По умолчанию /linuxcash/cash/data/queues |
Настройка работы с базой данных
Сервис Nes
работает непосредственно с базой данных кассовой программы. Настройка подключения загрузчика к БД и способ передачи данных осуществляется в конфигурационном файле /linuxcash/cash/exchangesystems/nes/config/nes_load.ini
в секции [mysql]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
host | строковый | Хост системы управления базой данных | По умолчанию localhost | |
port | целочисленный | любое целое положительное число | Порт системы управления базой данных | По умолчанию 3306 |
user | строковый | Логин системы управления базой данных | По умолчанию netroot | |
password | строковый | Пароль системы управления базой данных | По умолчанию netroot | |
sysUser | строковый | Логин для выполнения операций удаления и копирования файлов базы данных | По умолчанию mysql | |
sysGroup | строковый | Имя группы в системе для выполнения операций удаления и копирования файлов базы данных | По умолчанию mysql | |
commandCommitCount | целочисленный | любое целое положительное число | Количество команд, которые будут накоплены для выполнения подтверждения записи данных в БД | По умолчанию 5000 |
Настройка параметров авторизации на кассовом сервере
Сервис Nes
отправляет запросы на кассовый сервер. Настройка параметров авторизации для выполнения запросов осуществляется в конфигурационном файле /linuxcash/cash/exchangesystems/nes/config/nes_load.ini
в секции [CS]
.
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
login | строковый | Логин для авторизации на КС | По умолчанию admin |
passwd | строковый | Пароль для авторизации на КС | По умолчанию admin |
Логирование
Все процессы обмена, выполняемые между товароучетной системой и кассой, регистрируются в соответствующих журналах. Файлы логов за текущую смену хранятся в директории /linuxcash/logs/current/
. При закрытии смены архивируются и переносятся в директорию /linuxcash/logs/archive/logs
.
Для работы с данными доступны следующие логи:
Наименование | Описание |
---|---|
nesUploadService.log | В логе записываются события взаимодействия с очередью File-Queue и REST |
nesUploadcash.log | В лог записываются события по загрузке данных из очереди в БД кассы |
Помимо указанных логов могут быть использованы и другие файлы журналов, которые создаются при установке некоторых пакетов и запуске процессов.
Настройка логов на кассе осуществляется в файле /linuxcash/cash/exchangesystems/nes/config/logging.properties
.
В настройках можно изменить уровень логирования на любой из следующих:
INFO
,DEBUG
,WARNING
,ERROR
,CRITICAL
.
Самым детализированным уровнем логирования является DEBUG
(вес лог-файла выше, чем у остальных).
По умолчанию размер основного файла, в который осуществляется запись логов, не может превышать 100
Mb. Если размер данных, записываемых в основной файл, превысит 100
Mb, то данные из него будут скопированы в дополнительный лог-файл с индексом "n", где "n
" – номер лог-файла, а основной лог-файл будет перезаписан. Чем меньше индекс в названии дополнительного файла, тем актуальнее находящаяся в нем информация.
Количество таких файлов и максимальный размер можно задать в настройках, где по умолчанию "100000000
" – размер файла в байтах, "10
" – количество файлов:
[handler_nesErrorLogHandler] class=logging.handlers.RotatingFileHandler formatter=defaultFormatter args=('%(nesErrorLog)s', 'a', 100000000, 10) [handler_nesUploadServiceHandler] class=logging.handlers.RotatingFileHandler formatter=defaultFormatter args=('%(nesUploadService)s', 'a', 100000000, 10) [handler_nesUploadcashHandler] class=logging.handlers.RotatingFileHandler formatter=defaultFormatter args=('%(nesUploadcash)s', 'a', 100000000, 10) [handler_nesUploadShopHandler] class=logging.handlers.RotatingFileHandler formatter=defaultFormatter args=('%(nesUploadShop)s', 'a', 100000000, 10)
Не рекомендуется вносить изменения в остальные настройки.
Если файл настройки логов (logging.properties
) отсутствует, то в директории /tmp/
будет создан файл логирования nes.log
.