2012-04-18 119 views
2

如果我使用隊列生成響應數據,應該如何檢測客戶端是否與我的gevent webserver斷開連接?現在我不斷收到Broken pipe錯誤,但我不太明白我應該在哪裏發現這個異常(回溯只包括gevent自己的pywsgi.pysocket.py文件,而且沒有我的代碼)。謝謝。在gevent中檢測客戶端斷開連接

回答

2

我不知道如何從WSGI應用程序返回一個隊列(如果我正確理解你在做什麼)。

如果你能以不同的方式構建應用程序,並使用WSGI的write(),那麼你可以趕上這樣的插座例外:

def application(environ, start_response): 
    write = start_response('200 OK', []) 
    try: 
     write("response") 
    except socket.error, ex: 
     print ex 
+0

謝謝,我知道了。現在我使用隊列在greenlet之間傳輸數據(消息在其他地方生成)並使用wsgi write()發送數據。 – dpq 2012-04-19 10:00:42

相關問題