У меня есть небольшой API Flask, который получает запросы от удаленного сервера. При получении запроса запускается подпроцесс. Этот подпроцесс просто выполняет второй файл Python, который находится в той же папке. Этот подпроцесс может выполняться в течение нескольких часов, и несколько из этих подпроцессов могут выполняться одновременно. Я использую стандартный вывод, чтобы записать вывод файла Python в текстовый файл.
Все это работает нормально, но каждые пару недель случается, что Flask API перестает отвечать на запросы и требует перезапуска. Как только я прекращаю работу сервера Flask, все запущенные подпроцессы останавливаются. Я хотел бы избежать этого и запускать каждый подпроцесс независимо от API фляги.
Это небольшой пример, который иллюстрирует, что я делаю (этот код в основном находится внутри метода, который можно вызывать через API)
import subprocess
f = open("log.txt","wb")
subprocess.Popen(["python","job.py"],cwd = "./", stdout = f, stderr = f)
Мне бы хотелось, чтобы подпроцесс продолжал работать после того, как я остановил Flask API. В настоящее время это не так. В другом месте я читал, что причина в том, что я использую параметры stdout и stderr, но даже после их удаления поведение остается прежним.
Любая помощь будет оценена.