This page décrit comment définir un errback qui se déclenche lorsque la connexion à le client est perdue avant que la réponse est générée.Comment obtenir une erreur de réponse interrompue en utilisant klein?
Existe-t-il un moyen de faire quelque chose de similaire en utilisant klein? Le code de la page de référence est ci-dessous, qui fonctionne avec twisted.web. Je voudrais quelque chose comme: request.notifyFinish().addErrback(self._responseFailed, call)
qui est le code de déclencher un errback lorsque la demande ne se termine pas, cela fonctionne avec klein.
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()
Merci d'avoir répondu à la question comme indiqué. J'ai trouvé en utilisant klein, ou même l'exemple Web vanillé tordu _responseFailed n'est pas appelé. La requête est interrompue en frappant escape, le errback n'est pas appelé. –