В случае обмена данными (справочниками и продажами) между кассовым сервером и кассой в качестве инициатора обмена может выступать кассовая программа.
Для выгрузки продаж и загрузки справочников по инициативе кассы на нее необходимо установить пакет artix-sync-watchdog
, выполнив команду:
aptitude install artix-sync-watchdog
При установке пакета в директорию /linuxcash/cash/sync/bin
добавляются скрипты:
forcedUnload.py
– обеспечивает выгрузку продаж на КС. Продажи выгружаются за период с момента последней выгруженной продажи по текущую дату,forcedLoad.py
– обеспечивает загрузку справочников на кассу, при условии, что справочники имеются в очереди на КС,serviceLock.py
– отвечает за блокировку процесса. При запуске одного из скриптов, обеспечивающих обмен данными, в директории создается файл блокировки, который после завершения транзакции удаляется,- если в процессе обмена кассовая программа будет перезапущена, то при включении кассы скрипты будут запущены по расписанию. При запуске скрипта в файле блокировки проверяется id процесса, если такой процесс не запущен, то в лог записывается ошибка "Предыдущая сессия была завершена с ошибкой". В файл блокировки записывается новый id сессии и по ее завершении файл блокировки удаляется.
В директорию /etc/cron.d
помещаются правила принудительного запуска скриптов обмена. Правила передают соответствующим скриптам 2 параметра работы:
- количество попыток выполнения в случае неудачи, по умолчанию 5,
- таймаут между попытками, по умолчанию 20 секунд.
Правило sync-watchdog-load
отвечает за запуск скрипта forcedLoad.py
:
Пример файла
# Starting forced dictionaries load 0 */2 * * * root cd /linuxcash/cash/sync/bin && /usr/bin/python /linuxcash/cash/sync/bin/forcedLoad.py 5 20
Правило sync-watchdog-unload
отвечает за запуск скрипта forcedUnload.py
:
Пример файла
# Starting forced dictionaries load 0 */2 * * * root cd /linuxcash/cash/sync/bin && /usr/bin/python /linuxcash/cash/sync/bin/forcedUnload.py 5 20
Логирование работы скриптов ведется в файле linuxcash/cash/sync/sync.log
.