<< Click to Display Table of Contents >> Архитектура системы > Основные сервисы Сервис асинхронных событий |
Сервис асинхронных событий (Worker) служит для асинхронного выполнения вычислений, например, фоновых процессов по запросу сервиса планировщика или асинхронных обработчиков. Сервис используется для выполнения вычислений, которые:
•оказывают нагрузку на веб-сервер;
•требуют длительного времени или специально настроенного окружения: ОС, программное обеспечение и прочее.
Например, сервис Worker используется для автоматической выдачи прав на документы по настроенным правилам. На каждый документ может требоваться выдача прав большому количеству сотрудников и подразделений. Разово запущенный процесс может привести к перегрузке системы. Чтобы этого избежать, сервис Worker позволяет запустить процесс асинхронно.
Схема работы сервиса асинхронных событий:
1.Сотрудник создает документ в проводнике системы, сохраняет и закрывает карточку документа. На веб-сервере выполняется серверный код.
2.При выполнении серверного кода запускается асинхронный обработчик GrantAccessRightsToDocumentsByRule, который занимается выдачей прав на документы.
3.В вычислениях асинхронного обработчика проверяется, существуют ли для данного документа подходящие правила назначения прав. Если правила существуют, то выдаются права на документ по всем правилам.
Установка и настройка сервиса
По умолчанию сервис отключен и устанавливается в составе общего сервиса. Рекомендуется развернуть сервис асинхронных событий отдельно, если нужно повысить его производительность и при этом уже используется более 80% ресурсов, доступных общему сервису.
Настройки сервиса задает администратор. Например, в настройках можно задать новый путь до лог-файла сервиса.
Веб-сервер, среда разработки и все микросервисы Directum RX работают на .NET 6. Совместимость с .NET Core 3.1 сохраняется. Если вы используете сторонние библиотеки, собранные по спецификации .NET Standard 2.0, то их адаптировать не нужно, так как они совместимы и с .NET Core 3.1, и с .NET 6. Если в вашей разработке используются сторонние компоненты, которые поддерживают работу только с .NET Framework, то оставлена возможность перенастроить сервис Worker на работу под .NET Framework 4.8. Подробнее см. в описании настройки сервиса асинхронных событий.
Масштабирование Worker
Для увеличения производительности можно установить несколько сервисов Worker на разных серверах. Подробнее см. в разделе «Установка сервисов на выделенном сервере».
Каждый экземпляр сервиса Worker можно настроить на выполнение своих задач через конфигурационные файлы. Например, если сервис должен заниматься только выдачей прав на документы, то в его параметрах нужно задать разрешение на выполнение этой задачи. В параметрах остальных сервисов внести эту задачу в запрещенные.
© Компания Directum, 2024 |