这是在网络服务器中返回 subprocess.popen() 的输出的后续内容。我有一个长时间运行的进程,由 Web 服务器调用(运行 Django)启动。 我正在使用
subprocess.popen()
来生成该进程。我想出了如何保存标准输出并稍后检索它。但由于这是一个长期运行的过程,我希望客户端能够取消它。但为了做到这一点,我需要一个 popen()
对象的实例。但它不可序列化,所以我无法将它存储在数据库或其他任何地方?
除了将其本地存储在
views.py
中的地图中之外,还有其他解决方案吗?
我们使用工作负载管理系统,例如 pbsTorque、Oracle Grid 引擎或 Slurm。您向这些系统提交 bash 命令,它们管理在不同节点上运行它,此外,您可以告诉它们保存 stdout 和 stderr 的位置。另外,您可以在作业之间编写依赖关系,例如作业 3 在作业 1 和作业 2 成功完成后启动。