Отложить перезагрузку сервера при поствызовной обработке

Материал из Oktell
Перейти к: навигация, поиск

Сервер, отправленный на перезагрузку, ожидает не только окончания всех коммутаций, но и окончания служебных задач. Воспользуемся этим. Сценарий диалога будет выглядеть так:

E372a736093e51124e0df3fa5e1176ed.jpg

1) В компоненте "инициализируем флаг" создадим глобальную переменную, в которой выставим флаг того, что запущен сценарий диалога. А как мы знаем, глобальная переменная хранит свое значение в рамках сессии. Присвоим ей значение "1"

Example.jpg

2) В компоненте "Запуск сценария проверки флага" запускаем асинхронный служебный сценарий, в котором проверяем значение этого флага.

3) После диалоговой карточки ставим компонент "Меняем значение флага", в котором переменной "Флаг" присваиваем "0"

2b514c834738033ea3d7b63e5265fc01.jpg

4) Сценарий проверки флага. выглядит так:

A91753df5274e7a7cb31b79a31fef615.jpg

Если значение "1", то диалоговая форма открыта и перезагружать рано, значит переходим на паузу 300 мс, затем опять проверяем. Если значение стало "0" - переходим на компонент "Стоп". Для этого в компоненте "Анализ флага" в качестве первого аргумента укажем глобальную переменную "Флаг", которую тут нужно создать заново. В качестве второго - "0"

5) В разделе Администрирование\Общие настройки\Менеджер задач\Поведение сценария диалога после разъединения - Довести сценарий до конца. Нужно для того, что бы выполнился компонент "Меняем значение флага"

384115b99fd055fda2bdad0e55fc5c96.jpg

6) В разделе Администрирование\Общие настройки\Управление сервером\Ставим галочку "Ожидать момента завершения всех коммутаций и служебных сценариев перед перезапуском"

3b1fac384e821f1b0452fd38716fb9ee.jpg