V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xuefu  ›  全部回复第 1 页 / 共 1 页
回复总数  3
2014-09-01 13:00:25 +08:00
回复了 xuefu 创建的主题 Python Tornado 中 self.write("hello")出现"Broken pipe Error",如何解决?
@Reset 任务处理其实就是一个”代码模拟登录“获取信息,所以处理时间是不确定的,要看网络情况了。。。这么说吧,有这样一种特殊情况:假如第一次请求在4.8s后处理完任务了,然后进行self.write(),但是在0.2s内无法完成write操作(假设write操作需要0.4s)。这样一来当到达5s超时了,微信服务器就会关闭第一次连接,发起第二次请求。而第一次请求的self.write()操作继续执行而对方已关闭连接,从而出现broken pipe。当然这里的第一次请求的write操作也可能只要0.1s就完成了响应,就不会有第二次连接了。

为了快速响应,我还是希望能够每次请求都进行write,现在就是要通过类似异常处理这样来解决这个问题,可是。。。
2014-09-01 12:42:32 +08:00
回复了 xuefu 创建的主题 Python Tornado 中 self.write("hello")出现"Broken pipe Error",如何解决?
@arbipher 呵呵,这是服务号的高级接口啊。。。
2014-09-01 11:56:43 +08:00
回复了 xuefu 创建的主题 Python Tornado 中 self.write("hello")出现"Broken pipe Error",如何解决?
@Reset 因为不确定哪个请求能完成任务的处理,可能第一个请求就能完成,所以每一个请求都应该在最后要执行self.write()进行响应。self.write()是对POST请求进行IO响应,而self.finish()则会断开连接,两个函数执行完后都可以执行后面的语句(如果有的话)?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2709 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 15:31 · PVG 23:31 · LAX 07:31 · JFK 10:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.