1

我可以以某种方式将响应对象从一个进程“移动”到另一个进程吗?

第一个进程是执行其他 IO 的非阻塞服务器。它需要在 Tornado 或 Twisted 等非阻塞环境中完成。

需要另一个进程(实际上是“工作”进程池)来使用 PIL 处理图像。由于 GIL,我无法在线程中执行此操作。但是,工作人员需要获取响应对象的文件句柄才能将结果写入其中,或者它应该将结果返回给第一个进程,并且由于结果可能非常大(~1 mb),它不会似乎是个好主意。(它可能是一个单独的进程池,而不是每个请求的分叉 - 后一个似乎是一个糟糕的策略)

那么,我可以以某种方式允许工作进程直接写入响应吗?

4

1 回答 1

0

你不能。一个进程一次只能访问一个端口,如果不访问该端口,您将无法直接响应。

但你不需要那个。你需要的是代理!您可以向您的应用程序添加一个线程,该线程将侦听不同的端口。然后您启动您的图像进程,当该进程完成其工作时,您可以将结果发送到端口。然后你的线程将读取它并发送响应。

于 2012-07-09T11:36:49.073 回答