Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django视图之间保持子流程活动_Python_Django_Python 3.x - Fatal编程技术网

Python 在Django视图之间保持子流程活动

Python 在Django视图之间保持子流程活动,python,django,python-3.x,Python,Django,Python 3.x,我有一个交互式控制台应用程序,可以跟踪3D项目及其位置。我已经设置了一个Django服务器,这样用户就可以通过ajax调用远程与这个应用程序交互 我当前为控制台应用程序创建了要运行的子进程。然后,我想抓住这个对象,并根据用户的操作将其传递给其他视图。有办法做到这一点吗 我用subprocess.Popen创建的对象不可序列化。因此,我最后一次尝试是将管道名称保存到request.session中,并尝试在其他视图中使用它们。但是,我得到了一个“错误的文件描述符”错误,我假设这是因为在第一个视图中

我有一个交互式控制台应用程序,可以跟踪3D项目及其位置。我已经设置了一个Django服务器,这样用户就可以通过ajax调用远程与这个应用程序交互

我当前为控制台应用程序创建了要运行的子进程。然后,我想抓住这个对象,并根据用户的操作将其传递给其他视图。有办法做到这一点吗

我用subprocess.Popen创建的对象不可序列化。因此,我最后一次尝试是将管道名称保存到request.session中,并尝试在其他视图中使用它们。但是,我得到了一个“错误的文件描述符”错误,我假设这是因为在第一个视图中,子进程一旦超出范围就会终止。有没有办法让子流程保持活动状态并在Django视图之间维护它的句柄

也许子流程不是解决这个问题的正确方法。。。我应该尝试创建一个守护进程吗?那会有帮助吗?但我不确定这是不是正确的解决方案


我最后一次尝试是使Popen对象成为全局对象。然而,在新视图中,我仅在尝试使用其管道时收到“坏管道”错误。我还尝试使用python缓存,但似乎无法在其中存储Popen对象。

遗憾的是,您可以尝试使用两个在不同线程下运行的视图。为什么不将完整的Popen对象保存在request.session中?唉,这不能很好地扩展,但可能不需要。我无法保存它,因为它需要可序列化才能保存到request.session中。