Сервис 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.