Основную бизнес-логику Directum RX выполняет сервер приложений. Для асинхронного выполнения вычислений, которые оказывают нагрузку на сервер приложений, требуют длительного времени или специально настроенного окружения, предусмотрены два механизма:
Оба механизма разгружают сервер приложений, потому что выполняют вычисления за его пределами – на отдельном сервисе Worker.
Фоновые процессы предназначены для периодического выполнения работ, которые запускаются по расписанию. Их можно настроить и запустить, используя среду разработки Directum RX или клиентское приложение (с обложки модуля «Администрирование»). Фоновые процессы имеют историю выполнения, то есть можно посмотреть, выполнился процесс или нет. С помощью фонового процесса в Directum RX, например, создается задача для заполнения календаря рабочего времени.
Асинхронные обработчики являются новинкой версии Directum RX. Они предназначены для выполнения ресурсоемких операций, не требующих немедленного возврата результата. Одновременно можно выполнить вычисления нескольких асинхронных обработчиков в несколько потоков (распараллеливание вычислений). В Directum RX асинхронные обработчики используются, например, для автоматической выдачи прав доступа на документы.
Далее в статье мы расскажем о работе асинхронных обработчиков подробнее.
Если на сервере приложений выполняются длительные, ресурсоемкие операции, не требующие немедленного возврата результата, удобно вынести их в асинхронный обработчик.
Пример добавления логики для асинхронного обработчика есть в справке.
Предположим, есть некоторая организация, все фоновые процессы которой выполняются на отдельном сервере. Все асинхронные обработчики тоже вынесены на отдельный сервер.
Появился новый тяжелый процесс по синхронизации данных с 1С, который требует настройки соответствующего окружения. Такой процесс удобно выполнить асинхронным обработчиком на выделенном сервере.
Рассмотрим, какие настройки нужно задать для работы асинхронных обработчиков.
Прежде всего, в соответствии с инструкцией необходимо вынести сервис асинхронных событий Worker на выделенный сервер.
Настройки сервиса асинхронных событий задаются в конфигурационном XML-файле, который находится в папке с агентом управления сервисами Directum RX.
Пример пути – :\inetpub\wwwroot\DrxServiceRunner\Сonf\DrxWorker_ConfigSettings.xml.
Для работы асинхронного обработчика в конфигурационном файле нужно дополнительно задать параметры:
Подробное описание параметров см. в справке.
Успешные современные программы и приложения требуют использования асинхронного кода, и мы предоставляем разработчикам подходящие механизмы. Используйте асинхронные обработчики для процессов, которые требуют затраты значительных ресурсов. Так вы разгрузите свой сервер приложений и обеспечите быструю работу системы.
Хочу дополнить пример с обработкой тяжелого процесса по синхронизации данных с 1С, который требует настройки соответствующего окружения.
Помимо того, что в конфиге сервиса Worker3, который обрабатывает процессы по синхронизации данных с 1С, в параметре ASYNC_HANDLERS_PROCESSING надо указать список уникальных идентификаторов асинхронных обработчиков, которые будет выполнять Worker3, также необходимо в конфигах Worker1 и Worker2 в параметре ASYNC_HANDLERS_EXCLUDED указать эти же уникальные идентификаторы асинхронных обработчиков, которые не требуется выполнять (или другой вариант заполнить параметр ASYNC_HANDLERS_PROCESSING списком всех прочих уникальных идентификаторов асинхронных обработчиков).
Без этой настройки сервисы Worker1 и Worker2 будут брать в обработку процессы по синхронизации данных с 1С и будут падать т.к. у них отсутствует ПО.
Авторизуйтесь, чтобы написать комментарий