iikoFront API SDK

Отказоустойчивость

В версии V8Preview6 введена возможность контролирования состояния главного терминала(ГТ) группы и при необходимости передачи этой роли другому терминалу.

Нововведение состоит из следующих элементов:

  1. Список резервных терминалов;
  2. Отслеживание состояния главного терминала;
  3. Возможность перенастраивать главный терминал через API.

Подробнее:

1) В приложении iikoOffice в Настройках торгового предприятия => настройках группы можно задавать список резервных терминалов. Эти терминалы будут являться запасными терминалами, которые смогут принять на себя роль ГТ если это будет необходимо. Форма для задания резервных терминалов выглядит следующим образом:

ext_number

В API в интерфейс ITerminalsGroup добавлен список StandbyTerminals, который и содержит список резервных терминалов, заданных в iikoOffice. Чтобы получить информацию о текущей группе терминалов можно воспользоваться методом GetHostTerminalsGroup или же подписаться на нотификацию TerminalsGroupChanged.

2) Каждый ведомый терминал (ВТ) отслеживает состояние соединения с ГТ и если состояние изменится, то терминал сообщит об этом. Для этого была добавлена новая нотификация ConnectionToMainTerminalChanged. В этой нотификации передается состояние связи: true - соединение с ГТ установлено, false - соединение с ГТ потеряно.

3) В API введена новая операция ChangeGroupMainTerminal, позволяющая менять ГТ. Для выполнения данной операция необходимо иметь право на проведение опасных операций(F_DOP) и передавать в качестве аргумента терминал, который является резервным. После выполнения данной операции переданный терминал становится ГТ, а бывший ГТ переходит в список резервных терминалов.

Пример:

private static void ChangeGroupMainTerminal(IOperationService os)
{
	var newMainTerminal = os.GetHostTerminalsGroup().StandbyTerminals.First();
	os.ChangeGroupMainTerminal(os.GetCredentials(),newMainTerminal);
}

На данный момент для пользования этим нововведением необходимо иметь лицензию 21053302. Также данная лицензия убирает 30-секундную задержку при перезагрузке iikoFront.