在处理用户领卡的推送的时候,咱们的数据库对同一个新的用户,会出现两条数据,好比两条用户,两条用户领卡数据数据库
出现这种的缘由在于如下两点:服务器
参考微信开发文档,利用FromUserName + CreateTime排重,将其做为一个key,存放在memcached里面,而后每次有推送或者消息来得时候,先去判断一下是否存在,若是存在,表示是重复推送,直接return空串,不然表示是第一次推送,将其做为一个key,简要代码以下:微信
mc = memcached_wrapper.getMemcached() FromUserName = self.decrypt_msg.find("FromUserName").text CreateTime = self.decrypt_msg.find("CreateTime").text mc_key_str = Util.unicode2str(FromUserName + CreateTime) mc_value_str = mc.get(mc_key_str) if mc_value_str: mc.disconnect_all() return "" else: mc.set(mc_key_str, 1, 60) mc.disconnect_all() # 备注 # unicode2str将unicode字符串转化为bytes串 # memcached_wrapper一个处理memcached的py文件,主要做用是链接memcached和复用链接等功能
好了,就先到这里了,记录下来以便下次查阅,若是对于你也有帮助的话,那真是最好不过的了微信开发