Tornado在微信中的应用问题,信息排重写终止请求判断,tornado重写,看到微信公众开发文档中,


看到微信公众开发文档中,有关于消息排重的简要说明,细想一下,也确实明白其中的实现过程。但真正下手写代码的时候感觉还是一片荆棘。遇到的问题:

Tornado中对于服务器请求关闭导致Write error: [Errno 32] Broken pipe,这个该如何解决,为什么用异常也没用,Tornado中有没有函数可判断微信服务器已终止一个请求连接???

    try:        # ...    except IOError e:        # ...

mc = memcache.Client()

class WeixinHandler(tornado.web.RequestHandler):    def post(self):        # 省略文本解析...        key = msgId        if mc.get(key) == None:            mc.set(key, 1)        elif mc.get(key) == 1 or mc.get(key) == 2:            mc.incr(key)        if mc.get(key) == 1:            # 异常任务处理        elif mc.get(key) == 2:            # 无限等待 mc.get(key) != 2 and mc.get(key) != 3        elif mc.get(key) == 3:            if mc.get(key) == 3:                mc.set(key, u'任务无法完成')            else:                pass        else:            pass        self.write(mc.get(key))        mc.delete(key) # 每次请求都会调用,这样的话,一个失败的`write`(上面的                       # 语句)就会导致其它的请求响应异常了。

编橙之家文章,

评论关闭