Выполнение фоновых задач
Для того, чтобы начать использовать Сервис загрузки справочников, его необходимо установить, настроить и далее обращаться к его эндпоинтам для выполнения запросов.
Описание методов сервиса и их спецификация приведены в разделе "Описание 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/profile
, /now/zip
. После создания сразу добавляется в очередь выполнения. Задача является основной для экспорта.Для исполнения задачи NOW необходимо:
- профиль,
- схема (может генерироваться автоматически),
- файл данных (xls, csv, json и т.д.).
Задача NOW имеет следующие типы:
- DEMO - ограниченное число записей из файла справочника будет записано в NOW задачу. Записи можно посмотреть методом
now/{id}/data
. - FILES - файл справочника отправится на s3 (только туда). Архив, содержащий структуру и содержимое справочника, можно скачать методом
now/{id}/zip
. Может быть полезен при переносе данных с одного стенда на другой. Итоговый архив содержит все необходимые дынные для передачи по цепочке микросервисов. То есть нет необходимости создавать заново профиль. - SERVER - справочник будет отправлен в следующий микросервис.
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 | Удалить | Удаление текущей фоновой задачи |
Ниже описана процедура по настройке расписания (задачи) через интерфейс Сервиса загрузки справочников.
Загрузка справочника по расписанию
Чтобы настроить расписание для загрузки справочника, выполните следующее:
-
Перейдите на вкладку "Фоновая загрузка - Параметры".
Увеличить
-
Нажмите пиктограмму создания новой задачи. В списке задач будет создана новая запись Новая фоновая задача (отображается в конце списка) и справа откроется карточка фоновой задачи.
Увеличить
-
Задайте имя задачи:3.1 Нажмите пиктограмму редактирования имени.3.2 Введите имя профиля.3.3 Нажмите пиктограмму сохранения имени профиля.
-
В карточке задачи на вкладке "Параметры" задайте конфигурационные параметры задачи:
№ Параметр Описание 1Код справочника Имя справочника в платформе. В коде справочника могут быть только латинские символы, цифры и нижнее подчеркивание 2Название справочника Название справочника, отображаемое в системе. В названии справочника могут быть только латинские символы, цифры и нижнее подчеркивание 3URL для загрузки файла Ссылка, по которой скачивается файл источника данных. Например, для ОКТМО.
В качестве ссылки можно использовать шаблоны. Например,http://localhost/data/todayIs{date:ddMMyyyy}
будет преобразована вhttp://localhost/data/todayIs15072021
.
Описание форматов даты см. здесь4Период обновления CRON-выражение с периодом обновления (например, 0 50 13 ? * *) 5Профиль импорта Профиль справочника -
Нажмите "Сохранить" на панели инструментов фоновой задачи.
Параметры задачи могут быть изменены. Для этого необходимо выбрать задачу из списка, внести изменения и нажать "Сохранить".
Чтобы удалить задачу, выберите ее и нажмите "Удалить".
В демопримерах реализованы стандартные сценарии, демонстрирующие работу отдельных сервисов Платформы ГосТех. Отправка тестовых запросов в демопримерах позволит вам ознакомиться с функциями того или иного сервиса. Доступные демопримеры и описания реализованной в них функциональности представлены ниже.
Справочники GET
Получение доступных справочников и данных об их элементах по коду на примере трёх общедоступных классификаторов: ОКЕИ, ОКВЭД, ОКОПФ
Справочники POST
Получение данных из доступных справочников на примере трёх общедоступных классификаторов: ОКЕИ, ОКВЭД, ОКОПФ. Настройка отображаемых столбцов