Спасибо за признание того, что веб-страница должна предлагать время отклика менее секунды, даже если обработка .csv может занять больше времени.
У вас уже есть фоновая обработка потока. Вы могли бы разбудить ребенка, если вы хотите большей изоляции.
Вы могли бы немедленно предложить страницу со ссылкой на результаты, и надеяться, что человек предложит вам достаточно длительную интерактивную задержку, чтобы к тому времени обработка была закончена. Или сразу 302 перенаправить на такую страницу.
Или получить оценку страницы результатов (из размера файла .csv), когда обработка будет завершена, и отобразить , что как "извините, вы потеряете" msgstr "страница, которая приглашает щелкнуть через минуту, когда она должна быть готова. Даже без разумной оценки вы можете просто жестко запрограммировать десятисекундные повторы.
Страница может автоматически обновить sh, опрашивая до завершения обработки. См. https://en.wikipedia.org/wiki/Meta_refresh. Вы можете адаптивно уменьшить n = 5; meta = f'content="{n}; url=/results"'
, чтобы n
становилось меньше по мере приближения конечного размера файла результата.
Техника asyn c, такая как websockets или long-poll, позволяла вашему серверу уведомлять браузер точно тогда, когда анализируемый результат доступен, но для текущего варианта использования это звучит как перебор.