避免微信公众平台重传,Flask先响应后处理如何实现?
背景:
当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。各消息类型的推送XML数据包结构如下:
微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次
关于重试的消息排重,推荐使用msgid排重。
假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。
我的情况:
我的后台使用python flask实现,处理时间肯定是大于5s的,所以想先回复空串,避免断掉链接,同时后台进行处理,完成后将处理过的内容再次回复,或者哪怕主动推送都成。
我查了一下,说到异步响应,有线程,有python celery,有协程gevent,但是看用例都说的跟我的情况不是一个事儿。说起来,涉及到微信公众平台,这个需求应该很普遍,所以不可能没有,很可能是我在常识上犯了一个很严重的错误。
所以,有小伙伴遇到过这个问题么?或者有尝试过什么解决方法吗?Python的web框架下使用先响应后处理的异步方式解决微信重传问题?拜谢!
flask python2.7 微信公众平台消息重传 微信公众平台
*′詤訁゜.
10 years ago