Как сериализовать subprocess.popen()

Это продолжение темы Возврат вывода subprocess.popen() в webserver. У меня есть долго выполняющийся процесс, который запускается вызовом Webserver (на нем работает Django). Я использую subprocess.popen() для порождения процесса. Я понял, как можно сохранить stdout и получить его позже. Но поскольку это длительный процесс, я хочу, чтобы клиент мог его отменить. Но для этого мне нужен экземпляр объекта popen(). Но он не является сериализуемым, поэтому я не могу хранить его в базе данных или где-либо еще?

Есть ли какое-нибудь другое решение, кроме как просто хранить его локально в карте в views.py?

Мы используем системы управления рабочей нагрузкой, такие как pbsTorque, Oracle Grid engine или Slurm. Вы отправляете команду bash в эти системы, и они управляют ее выполнением на разных узлах, более того, вы можете указать им, куда сохранять stdout и stderr. Также можно написать зависимость между заданиями, например, задание 3 запускается после успешного завершения заданий 1 и 2

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