<< Click to Display Table of Contents >> Обмен с контрагентами > Инструменты мониторинга и диагностики Получение сообщений в фоновом режиме |
Все сообщения из сервисов обмена автоматически загружаются в Directum RX с помощью фонового процесса «Электронный обмен. Получение сообщений». Он запускается по расписанию, по умолчанию каждые 10 минут. Время запуска можно сократить, если это позволяет мощность сервера с установленным сервисом асинхронных событий (Worker). Также администратор может запускать фоновый процесс вручную, например, для проверки загрузки сообщений после устранения ошибки.
Сообщения из сервиса обмена обрабатываются быстро. Фоновый процесс загружает только «легкие сообщения», а вся тяжелая логика загрузки полных сообщений и их обработки выполняется на сервисе Worker в несколько параллельных потоков.
Объем загружаемых документов и скорость их обработки легко масштабируется. Чтобы увеличить количество обрабатываемых документов, необходимо повысить мощность сервера и установить дополнительные экземпляры Worker. Подробнее см. расчет количества документов для загрузки и системные требования Directum RX.
Принцип работы фонового процесса
1.При поступлении документов из сервиса обмена фоновый процесс загружает в Directum RX «легкие сообщения». Они содержат только идентификаторы текущего и основного сообщения, а также данные для фильтрации, например, информацию об отправителе и получателе. «Легкие» сообщения не хранят документы. Благодаря этому сокращается количество лишних запросов к сервисам обмена.
За сеанс работы фонового процесса по одному абонентскому ящику загружается до 1000 сообщений.
2.Для каждого сообщения фоновый процесс создает элемент очереди MessageQueueItem. Затем группирует их по идентификатору основного сообщения RootMessageId. В дальнейшем за счет группировки исключаются случаи параллельной обработки сообщений по одному документу разными асинхронными обработчиками.
Таким образом формируется очередь сообщений.
3.Для каждой группы сообщений фоновый процесс запускает асинхронный обработчик ProcessMessages «Обработка сообщений из сервиса обмена».
Принцип работы асинхронного обработчика
Асинхронный обработчик запускается на сервере, где развернут сервис асинхронных событий (Worker). Благодаря этому он может выполнять ресурсоемкие операции. Обработчик получает список элементов очереди сообщений и для каждого элемента последовательно загружает полные сообщения с сервиса обмена: содержимое документов, электронные подписи и другие сведения.
После завершения обработки одной группы сообщений он принимает в работу следующую группу, не дожидаясь другого обработчика. Процесс продолжается до тех пор, пока все сообщения с сервиса обмена не будут обработаны.
Пример загрузки документов из сервиса обмена
Предположим, что наша организация ООО «ТехноСервис» отправила контрагенту АО «Метинвест» поочередно несколько документов: универсальный передаточный документ (УПД), договор и счет-фактуру. Контрагент подписал УПД, договор и принял счет-фактуру. Необходимо загрузить все исходящие и ответные сообщения по каждому документу в Directum RX.
В примере для документов формируются несколько сообщений:
Документ |
Содержимое сообщений |
---|---|
Универсальный передаточный документ (УПД) |
Титул продавца |
Подтверждение даты отправки |
|
Извещение о получении на подтверждение даты отправки |
|
Извещение о получении |
|
Титула покупателя |
|
Договор |
Договор |
Ответная подпись контрагента |
|
Счет-фактура |
Счет-фактура |
Подтверждение даты отправки |
|
Извещение о получении на подтверждение даты отправки |
|
Извещение о получении |
Сообщения создаются как в Directum RX, так и на стороне сервиса обмена. Подробный порядок формирования сообщений в ходе документооборота:
1.Наша организация загружает УПД, подписывает и отправляет контрагенту через сервис обмена. В исходящем сообщении передается титул продавца. 2.Сервис обмена формирует подтверждение даты отправки, подписывает его и отправляет вместе с УПД контрагенту. В сообщении передается подтверждение даты отправки. 3.Контрагент получает УПД, подтверждение даты отправки и отправляет в ответ подписанное извещение о получении. 4.Сервис обмена формирует подтверждение даты отправки на извещение о получении, подписывает его и направляет нашей организации вместе с извещением о получении. 5.Directum RX загружает входящие сообщения, в которых содержатся извещение о получении и подтверждение о получении извещения. 6.Контрагент подписывает УПД. В результате формируется титул покупателя. Затем он отправляет ответ в нашу организацию. 7.Directum RX загружает входящее сообщение с титулом покупателя. |
1.Наша организация создает договор, подписывает его и отправляет контрагенту через сервис обмена. В исходящем сообщении передается содержимое документа. 2.Контрагент подписывает документ и отправляет ответ в нашу организацию. 3.Directum RX загружает входящее сообщение, в котором содержится электронная подпись контрагента. |
1.Наша организация загружает счет-фактуру, подписывает его и отправляет контрагенту через сервис обмена. В исходящем сообщении передается содержимое документа. 2.Сервис обмена формирует подтверждение даты отправки, подписывает его и отправляет вместе со счетом-фактурой контрагенту. В сообщении передается подтверждение даты отправки. 3.Контрагент принимает счет-фактуру, подтверждение даты отправки и отправляет в ответ подписанное извещение о получении. 4.Сервис обмена формирует подтверждение даты отправки на извещение о получении, подписывает его и направляет нашей организации вместе с извещением о получении. 5.Directum RX загружает входящие сообщения, в которых содержатся извещение о получении и подтверждение о получении извещения. |
При запуске фонового процесса «Электронный обмен. Получение сообщений»:
1.В Directum RX загружаются «легкие сообщения» и каждое из них ставится в очередь на обработку.
2.Все сообщения, сформированные по одному документу, группируются относительного основного сообщения:
•по УПД – MessageQI 1-5, где основное сообщение – MessageQI 1;
•по договору – MessageQI 6-7, где основное сообщение – MessageQI 6;
•по счету-фактуре – MessageQI 8-11, где основное сообщение – MessageQI 8.
3.Запрос на обработку сообщений отправляется через брокер RabbitMQ в сервис асинхронных событий.
4.На каждую группу сообщений запускается свой асинхронный обработчик. Сообщения обрабатываются в следующей последовательности:
Первый обработчик принимается группу сообщений MessageQI 1-5, а второй – группу MessageQI 6-7. Так как у второго обработчика всего два сообщения в обработке, он быстрее завершает работу по ним и берет в обработку следующую группу MessageQI 8-11. Таким образом сообщения обрабатываются параллельно в два потока.
Если на сервисе асинхронных событий увеличить количество потоков, то обработка сообщений с сервиса обмена ускорится в несколько раз.
Инструменты мониторинга и анализа Элементы очереди синхронизации сообщений |
© Компания Directum, 2024 |