【发布时间】:2014-01-23 14:59:44
【问题描述】:
我正在做一些基本的 wsgi 工作:
def application(environ, start_response):
start_response("200", [])
result = some_long_func()
return [result]
客户端在some_long_func 完成之前断开连接时常发生,我在日志中看到以下内容:
SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected)...
有没有办法在应用程序级别处理断开连接的客户端,即在application() 返回之前?
我的服务器是 uwsgi(独立)。没有框架,只有纯 python。
【问题讨论】:
-
没有线索。但我很想知道。
-
您应该澄清“处理”断开连接的客户端的含义。如果你只想忽略它,你可以使用 uWSGI 选项来完成,如果你想始终确保在请求结束时执行代码,只需使用 WSGI close() 方法。
-
@roberto:我想在断开连接时采取一些特定于应用程序的操作,例如将错误记录到数据库中,发送有关该问题的邮件等。