Выполнение фоновых задач

Общее описание

Для того, чтобы начать использовать Сервис загрузки справочников, его необходимо установить, настроить и далее обращаться к его эндпоинтам для выполнения запросов.
Описание методов сервиса и их спецификация приведены в разделе "Описание API сервиса загрузки справочников".
В случае неуспешной обработки запросов Сервис загрузки справочников возвращает ошибки в формате JSON. Этот ответ можно преобразовать в любой необходимый формат:
Respose_error type=json
{
  "type": "Default Exception",
  "title": "Exception throwed when parsed",
  "invalid params": "Profile with ID 'e32e0a0c-149f-40b9-a60c-50d31597f112' not found"
}

Выполнение фоновых задач

Для выполнения задачи можно передать открытую ссылку и загружать ее по CRON, либо передать данные в теле запроса. Перечень методов указан в Swagger.
Кластер quartz является open source решением для выполнения задач, умеет масштабироваться вертикально и горизонтально.
Имеются следующие задачи:
  • SimpleLoadingJob - загрузка данных по открытой ссылке. Пользователь заводит новую задачу методом POST /cron, она выполняется по крону.
  • S3Job - задача для загрузки данных из s3. Создается при отправке данных методами /now/profile, /now/zip. После создания сразу добавляется в очередь выполнения.

Задачи NOW

NOW - задача для конвертации данных из файлов пользователя к единому формату и отправки в следующий микросервис. Создается при отправке данных методами /now/profile, /now/zip. После создания сразу добавляется в очередь выполнения. Задача является основной для экспорта.
Для исполнения задачи NOW необходимо:
  • профиль,
  • схема (может генерироваться автоматически),
  • файл данных (xls, csv, json и т.д.).
Задача NOW имеет следующие типы:
  • DEMO - ограниченное число записей из файла справочника будет записано в NOW задачу. Записи можно посмотреть методом now/{id}/data.
  • FILES - файл справочника отправится на s3 (только туда). Архив, содержащий структуру и содержимое справочника, можно скачать методом now/{id}/zip. Может быть полезен при переносе данных с одного стенда на другой. Итоговый архив содержит все необходимые дынные для передачи по цепочке микросервисов. То есть нет необходимости создавать заново профиль.
  • SERVER - справочник будет отправлен в следующий микросервис.

Задачи CRON

CRON - задача для загрузки файлов данных по открытой ссылке. Пользователь заводит новую задачу методом POST /cron.
После создания какой-либо из задач вы можете проверить ее статус методом /now/{taskId}/events. Если задача не выполнилась и была устранена причина, то можно воспользоваться методом POST now/trigger. В результате задача будет вновь добавлена в очередь quartz, но, разумеется, данные должны уже быть на s3. В противном случае создайте новую задачу, используя данные в вашем хранилище.
Для прерывания задачи воспользуйтесь DELETE /now/{taskId}. Обработка будет остановлена, задача удалена.
В качестве ссылки на файл можно использовать шаблоны, например, http://localhost/data/todayIs{date:ddMMyyyy} будет преобразована в http://localhost/data/todayIs15072021. Описание форматов даты см. здесь.
Существует множество форматов для крона, но нужно выбирать именно тот, что поддерживается кластером quartz. Можно воспользоваться онлайн инструментов, например, https://www.freeformatter.com/cron-expression-generator-quartz.html.

Управление фоновыми задачами

Настройка и управление фоновыми задачами выполняется через пользовательский интерфейс Сервиса загрузки справочников. С помощью фоновой задачи можно настроить расписание для загрузки справочника с актуальными данными. Таким образом, загрузка справочника возможна как из карточки профиля справочника, так и по расписанию (через фоновую задачу).
Панель инструментов фоновой задачи содержит следующие элементы управления:
Элемент управленияНазначение
1
Вкладка "Параметры"Настройка фоновой задачи (см. раздел ниже)
2
Вкладка "События"Информационная вкладка. Отображает лог по задаче: Загружено (успешная загрузка задачи), Ошибка (загрузка задачи невозможна в связи с ошибкой, см. поле "Сообщение")
3
СохранитьСохранение настроек фоновой задачи
4
УдалитьУдаление текущей фоновой задачи
Ниже описана процедура по настройке расписания (задачи) через интерфейс Сервиса загрузки справочников.

Загрузка справочника по расписанию

Чтобы настроить расписание для загрузки справочника, выполните следующее:
  1. Перейдите на вкладку "Фоновая загрузка - Параметры".

    Увеличить

  2. Нажмите пиктограмму создания новой задачи. В списке задач будет создана новая запись Новая фоновая задача (отображается в конце списка) и справа откроется карточка фоновой задачи.

    Увеличить

  3. Задайте имя задачи:
    3.1 Нажмите пиктограмму редактирования имени.
    3.2 Введите имя профиля.
    3.3 Нажмите пиктограмму сохранения имени профиля.
  4. В карточке задачи на вкладке "Параметры" задайте конфигурационные параметры задачи:
    ПараметрОписание
    1
    Код справочникаИмя справочника в платформе. В коде справочника могут быть только латинские символы, цифры и нижнее подчеркивание
    2
    Название справочникаНазвание справочника, отображаемое в системе. В названии справочника могут быть только латинские символы, цифры и нижнее подчеркивание
    3
    URL для загрузки файлаСсылка, по которой скачивается файл источника данных. Например, для ОКТМО.
    В качестве ссылки можно использовать шаблоны. Например, http://localhost/data/todayIs{date:ddMMyyyy} будет преобразована в http://localhost/data/todayIs15072021.
    Описание форматов даты см. здесь
    4
    Период обновленияCRON-выражение с периодом обновления (например, 0 50 13 ? * *)
    5
    Профиль импортаПрофиль справочника
  5. Нажмите "Сохранить" на панели инструментов фоновой задачи.
Параметры задачи могут быть изменены. Для этого необходимо выбрать задачу из списка, внести изменения и нажать "Сохранить". Чтобы удалить задачу, выберите ее и нажмите "Удалить".

Демопримеры

В демопримерах реализованы стандартные сценарии, демонстрирующие работу отдельных сервисов Платформы ГосТех. Отправка тестовых запросов в демопримерах позволит вам ознакомиться с функциями того или иного сервиса. Доступные демопримеры и описания реализованной в них функциональности представлены ниже.
Справочники GET
Получение доступных справочников и данных об их элементах по коду на примере трёх общедоступных классификаторов: ОКЕИ, ОКВЭД, ОКОПФ
Справочники POST
Получение данных из доступных справочников на примере трёх общедоступных классификаторов: ОКЕИ, ОКВЭД, ОКОПФ. Настройка отображаемых столбцов
Предыдущий раздел
Валидаторы
Следующий раздел
Примеры запросов
Была ли страница полезной?