Skip to content
8 / 15

Когда обрабатывать запрос синхронно, а когда возвращать 202 и доделывать в фоне?

Критерий один: укладывается ли работа в то время, которое клиент готов ждать. Если ответ нужен здесь и сейчас и работа занимает десятки-сотни миллисекунд — обрабатывайте синхронно. Если работа измеряется секундами, зависит от чужого сервиса или её объём непредсказуем (отчёт, конвертация видео, массовая рассылка) — принимайте запрос, отдавайте 202 Accepted с идентификатором задачи и делайте в фоне. Клиент дальше либо опрашивает статус, либо получает вебхук. Плата за это — усложнение: нужны хранение состояния задачи, повторы, идемпотентность и понятная семантика «принято, но ещё не сделано». Синхронный ответ всегда проще, поэтому фон вводят по необходимости, а не по умолчанию.

Когда обрабатывать запрос синхронно, а когда возвращать 202 и доделывать в фоне? | JScriptiser