Вопросы и ответы про асинхронные вызовы
Вопросы в этом разделе
Какие виды таймаутов можно задавать в заголовке асинхронного вызова?
При отправке асинхронных вызовов возможно задать три вида таймаутов (через заголовок):
X_Health_Timeout
— таймаут на проверку работоспособности асинхронных вызовов (значение устанавливается в секундах, по умолчанию — 10).X_Request_Timeout
— таймаут на время ответа асинхронных вызовов (значение устанавливается в секундах, по умолчанию — 100).X_Full_Live_Timeout
— таймаут на общее время доступности инференса (значение устанавливается в секундах, по умолчанию —None
).
В случае неуспешного выполнения вызова, он повторяется до превышения пяти попыток, либо до превышения X_Full_Live_Timeout
, если он был задан.
После превышения одного из этих лимитов вызов помечается завершенным с ошибкой и повторная отправка больше не производится.
Почему могут возникать проблемы при выполнении асинхронного вызова?
Проблемы при выполнении асинхронного вызова могут происходить по следующим причинам:
Неправильный
X_Health_Endpoint
(по умолчанию он ожидается на/
). Со стороны сервиса происходит пять попыток пересоздания, в случае неуспешных дальнейших попыток возникает ошибка.Время ответа деплоя на метод
X_Health_Endpoint
дольше, чем 120 секунд (таймаут проверки health по умолчанию). Со стороны сервиса происходит пять попыток пересоздания, в случае неуспешных дальнейших попыток возникает ошибка.Деплой слишком долго выполняет предикт (дольше
X_Request_Timeout
= 300 секунд по умолчанию). Со стороны сервиса происходит пять попыток пересоздания, в случае неуспешных дальнейших попыток возникает ошибка.
Для устранения возникших проблем попробуйте создать асинхронный вызов, дополнительно указав заголовок X-Request-Timeout: 5000
.
Подробнее про Асинхронные вызовы.