Асинхронные действия¶
Часть действий в Integration API являются асинхронными.
Это означает, что запрос на выполнение действия ставит задачу для интеграционного модуля Продукта и возвращает идентификатор задачи. Интеграционный модуль через некоторое время обрабатывает задачу и выдает результат обработки.
Таким образом, для выполнения асинхронного действия нужно:
поставить задачу;
дождаться завершения ее обработки;
запросить результаты обработки.
Чтобы дождаться завершения обработки задачи, внешняя система может периодически запрашивать статус обработки по идентификатору поставленной задачи. В ответ на запрос возвращается JSON, который содержит статус задачи и, опционально, сообщение об ошибке:
{
"TaskStatus": 0, // статус обработки задачи
"TaskHandlingErrorMessage": "string" // сообщение об ошибке, если задача обработана с ошибкой
}
Возможные значения статуса обработки:
0
- задача запланирована к обработке;1
- задача успешно обработана;2
- задача обработана с ошибкой;3
- черновик задачи запланирован к обработке;4
- обработка задачи поставлена на паузу;5
- обработка задачи отменена.
Сразу после постановки задача может оказаться в статусах 0
или 3
.
Любое другое значение статуса внешняя система должна воспринимать как завершение обработки задачи и прекращать ожидание.
Поле TaskHandlingErrorMessage
заполняется только в случае, если задача была обработана с ошибкой. Поле TaskStatus
при этом равно 2
.
Примечание
URL запросов, возвращающих статусы задач, зависят от выполняемого действия. JSON, который содержит статус задачи, может дополняться результатами обработки задачи. Особенности запроса статуса и результатов обработки задач описаны в разделах с конкретными действиями.