Page tree
Skip to end of metadata
Go to start of metadata

Получение данных выполняется для каждого Источника данных отдельно, в отдельном регламентном задании

Логика получения данных находиться в функции адаптер_ЗагрузкаRabbitMQ.адаптер_ЗагрузитьДанныеИзОчереди()

Вначале из очереди со схемами данных для данного источника получаются все схемы, затем в цикле выполняется чтение сообщений из очереди. Если сообщений нет, то выполняется ожидание сообщений внутри компоненты обмена (без нагрузки на сервер) в течении Таймаута, установленного в расписании обмена (по умолчанию 60 секунд)

Для полученного сообщения ищется схема XSD по номеру версии, среди ранее загруженных схем, если схема не найдена, то выполняется попытка загрузить схемы из очереди схем. Если схема не найдена, то генерируется ошибка

Если схема найдена, то сообщение разбирается и полученный объект записывается в базу данных

Если объект требует отложенной обработки (например проведения), то объект регистрируется в специальном регистре сведений для отложенной обработки

Если объект нужно пометить на удаление, то он помечается на удаление (после записи)

Если в процессе загрузки сообщения возникла ошибка, что в зависимости от флага "Пропускать проблемные сообщения":

  • если установлен, то проблемное сообщение пропускается и ошибка пишется в лог (в ЖР и отправляется Получателю для логов)
  • если сброшен, то ошибка пишется в лог и чтение прерывается, сообщение остается в очереди
  • No labels

1 Comment

  1. Valeriy Dykov

    1. по п4. дополнение - если не найдена схема соотв версии, то делается попытка получить схему последней версии
    2. Еще ты не написал как логгируется сообщение с данными в цикле