Установка тайм-аута конечной точки Django Rest Framework для определенного представления

Я использую Django 4.0.5 + Django Rest Framework + Gunicorn
. Иногда мне нужно обработать несколько POST-запросов с большим количеством данных для обработки.
Пользователь будет ждать ответа "ok" или "fail" и список идентификаторов, полученных в результате обработки.

Пока все работает хорошо для запросов среднего размера (это субъективно), но когда я перехожу к большим запросам, процесс занимает более 1 мин.
. Именно в таких случаях я получаю ответ об ошибке 500 от DRF, но мой процесс в фоновом режиме будет продолжаться до конца (но пользователь не будет знать, что он успешно завершен).

Я проводил некоторое расследование и изменил параметр таймаута Gunicorn (до 180), но не изменил поведение в сервисе.

Есть ли способ установить таймаут больше 60s в @api_view или где-то еще?

Используйте асинхронные задачи celery для обработки таких запросов в качестве фоновых задач.

Вернуться на верх