如何使用klein从中断响应中恢复?

2024-04-25 22:53:43 发布

您现在位置:Python中文网/ 问答频道 /正文

This page描述如何设置当连接到 客户端在生成响应之前丢失。你知道吗

有没有办法用klein做类似的事情? 下面是引用页面中的代码,它与扭曲的.web. 我想要这样的东西: request.notifyFinish().addErrback(self._responseFailed, call) 这是在请求未完成时触发errback的代码,与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()

Tags: 代码fromimportselfwebrequestdeftwisted
1条回答
网友
1楼 · 发布于 2024-04-25 22:53:43

Klein处理程序被传递给一个常规的Twisted Web Request对象。您可以对它使用相同的notifyFinish方法来获取中断响应通知。你知道吗

相关问题 更多 >