擅长:python、mysql、java
<p>我正试图在一个项目中做同样的事情,我发现在我的uWSGI和nginx堆栈中,当客户端的流响应被中断时,发生了以下错误</p>
<pre><code>SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request
uwsgi_response_write_body_do(): Broken pipe [core/writer.c line 404] during GET
IOError: write error
</code></pre>
<p>我可以用一个普通的<code>try</code>和<code>except</code>像下面这样</p>
<pre><code> try:
for chunk in iter(process.stdout.readline, ''):
yield chunk
process.wait()
except:
app.logger.debug('client disconnected, killing process')
process.terminate()
process.wait()
</code></pre>
<p>这给了我:</p>
<ol>
<li>使用Flask的生成器功能即时传输数据</li>
<li>取消连接时没有僵尸进程</li>
</ol>