Heroku и django: heroku останавливает функцию до ее завершения

Я развернул приложение "django" на "heroku" и У меня есть функция (внутри представления) в моем приложении, которая занимает некоторое время (3m-5m), прежде чем она вернется. Проблема в следующем: - когда я развернул свое приложение на "heroku", функция не вернулась, я протестировал свое приложение на своем компьютере, и оно работает нормально.

"heroku" не говорит мне ничего в логах нет 'timeout' или чего-либо еще.

От трех до пяти минут - это слишком долго для запроса. Героку будет убивать такие запросы:

Наилучшей практикой является достижение времени отклика вашего веб-приложения менее 500 мс, это позволит освободить приложение для большего количества запросов и обеспечить высокое качество обслуживания посетителей. Иногда веб-запрос может зависнуть или занять слишком много времени для обработки вашим приложением. В этом случае маршрутизатор прервет запрос, если его обработка занимает более 30 секунд.

Я не уверен, почему вы не видите таймаутов в журналах, но если вам действительно нужно так много времени для вычисления чего-либо, вам нужно делать это асинхронно.

Есть много способов сделать это, например, вы можете поставить работу в очередь и сразу же ответить состоянием "загрузки", затем опросить внутреннюю часть и обновить представление, когда результат будет готов

Начните с чтения Worker Dynos, Background Jobs and Queueing и затем решите, как вы хотите действовать дальше. Мы не можем указать вам "правильный" способ, это то, что вы должны решить для своего приложения.

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