django, fastcgi: как управлять длительным процессом?

Я унаследовал приложение django + fastcgi, которое необходимо изменить для выполнения длительных вычислений (до получаса и более). Что я хочу сделать, так это запустить вычисления в фоновом режиме и вернуть ответ типа «ваша работа была запущена». Пока процесс запущен, дальнейшие обращения к URL должны возвращать «ваша работа еще выполняется», пока работа не завершится, и в этот момент результаты работы должны быть возвращены. Любое последующее попадание по URL должно возвращать кешированный результат.

Я абсолютный новичок в django и не занимался какой-либо значительной веб-работой в течение десятилетия, поэтому я не знаю, есть ли встроенный способ делать то, что я хочу. Я попытался запустить процесс через subprocess.Popen (), и это работает нормально, за исключением того факта, что он оставляет несуществующую запись в таблице процесса. Мне нужно чистое решение, которое может удалить временные файлы и любые следы процесса после его завершения.

Я также экспериментировал с fork () и потоками и до сих пор не нашел жизнеспособного решения. Есть ли каноническое решение того, что мне кажется довольно распространенным вариантом использования? FWIW это будет использоваться только на внутреннем сервере с очень низким трафиком.

Ответы на вопрос(2)

Ваш ответ на вопрос