0
This page描述瞭如何設置在生成響應之前連接到 客戶端丟失時觸發的errback。如何使用klein從中斷響應獲取errback?
有沒有辦法用klein做類似的事情? 參考頁面的代碼如下,它適用於twisted.web。我想這樣的: request.notifyFinish().addErrback(self._responseFailed, call)
這是代碼來發出errback時,請求沒有完成,這與克萊恩一起工作。
from twisted.web.resource import Resource
from twisted.web.server import NOT_DONE_YET
from twisted.internet import reactor
class DelayedResource(Resource):
def _delayedRender(self, request):
request.write("<html><body>Sorry to keep you waiting.</body></html>")
request.finish()
def _responseFailed(self, err, call):
call.cancel()
def render_GET(self, request):
call = reactor.callLater(5, self._delayedRender, request)
request.notifyFinish().addErrback(self._responseFailed, call)
return NOT_DONE_YET
resource = DelayedResource()
感謝您回答上述問題。我發現使用klein,甚至香草扭曲的網頁示例_responseFailed不叫。請求被擊中中斷,errback不會被調用。 –