Как сериализовать subprocess.popen()
Это продолжение темы Возврат вывода subprocess.popen() в webserver. У меня есть долго выполняющийся процесс, который запускается вызовом Webserver (на нем работает Django).
Я использую subprocess.popen()
для порождения процесса. Я понял, как можно сохранить stdout и получить его позже. Но поскольку это длительный процесс, я хочу, чтобы клиент мог его отменить. Но для этого мне нужен экземпляр объекта popen()
. Но он не является сериализуемым, поэтому я не могу хранить его в базе данных или где-либо еще?
Есть ли какое-нибудь другое решение, кроме как просто хранить его локально в карте в views.py
?
Мы используем системы управления рабочей нагрузкой, такие как pbsTorque, Oracle Grid engine или Slurm. Вы отправляете команду bash в эти системы, и они управляют ее выполнением на разных узлах, более того, вы можете указать им, куда сохранять stdout и stderr. Также можно написать зависимость между заданиями, например, задание 3 запускается после успешного завершения заданий 1 и 2