<< Click to Display Table of Contents >> Архитектура системы > Основные сервисы Сервис изолированного кода |
За выполнение прикладного кода отвечают: веб-сервер, сервис асинхронных событий, сервис обработки блоков схем задач, сервис отчетов и сервис интеграции. Выполнение кода сторонних сборок с этих сервисов можно передать сервису изолированного кода (IsolatedArea). Если при выполнении кода возникнут ошибки, то это не повлияет на работоспособность других сервисов системы.
В этом случае разработчик добавляет прикладной код в изолированную область. Каждый сервис, с которого передано выполнение кода, запускает отдельный процесс. Благодаря этому уменьшается вероятность сбоя системы из-за ошибки в программном коде, а также снижается нагрузка на другие сервисы.
Сервис изолированного кода запускается при первом вызове функции изолированной области.
Схема работы сервиса:
1.Веб-сервер, сервис выполнения блоков схем задач, сервис асинхронных событий, общий сервис или сервис интеграции запускает дочерний процесс сервиса изолированного кода и отправляет ему запрос на вызов функции.
2.Сервис изолированного кода находит нужную функцию среди сборок изолированных областей прикладной разработки и вызывает ее.
3.Сервис изолированного кода возвращает сервису Directum RX результат выполнения функции.
Если превышено время выполнения запроса, то сервис IsolatedArea перезапускается и повторяет все вызовы изолированных функций, кроме вызова, на котором возникла ошибка. Также сервис автоматически перезапускается, если превышен допустимый размер используемой памяти. Если процесс завершил работу аварийно, то он запустится заново при следующем вызове изолированного кода.
После завершения выполнения функции сервис изолированного кода не останавливается. Он продолжает ожидать новых запросов. Процесс завершается, если запустивший его сервис остановлен или в работе сервиса изолированного кода возникают ошибки.
Установка и настройка сервиса
По умолчанию сервис изолированного кода не запущен. Разворачивать сервис вручную не требуется. Его запускает сервис, который передает обработку прикладного кода на сервис изолированного кода.
Настройки сервиса задает администратор. Например, в настройках можно задать тайм-аут выполнения изолированного кода.
© Компания Directum, 2024 |