别人给我提交的post请求。我这边方法里接受到的时候,发现他重复向我提交了同样的数据。我这边只是负责接收一下其他人post来的参数,然后向微信用户推送。发现了同一条记录,他给我post了三次,我这边怎样给过滤掉重复的?
结贴的答案只能单选么?有几个童鞋说的都对我有帮助呢。那只能选春晚的童鞋了。
判断是否重复,然后过滤。
嗯 我就是在怎样判断是否重复这里卡住了。你有什么好建议?
@7b: 怎么卡住的,你不说我哪儿知道啊。
@爱编程的大叔: 对方是客户那边找的一个兼职做外包的,他也是用百度上找到的工具来向我定时post消息。是他那边给我重复post了。所以我这边接收到消息后就给微信用户推送了,才发现,同一条消息,推送了三次。
@7b: 我不是问这个。
好吧,你知道春晚吗?CCAV直播...
说是直播,其实延时了6秒,那么这6秒可以拿来做啥用呢?
看看有没有不符合社会主义精神文明建设,破坏和谐社会,宣扬腐朽西方价值观的事情发生,
比如有人突然站起来大喊三次“打到****”之类的,这个就不转发了,直接屏蔽了。
这个事情告诉我们,多看春晚,有助于开拓程序员思维,提高解决能力。
@爱编程的大叔: 那么问题来了,对方表示他只是个兼职外包的,他所做的就这样了。很屌的。反正数据已经post给我了,我接收到就自己处理去。因为给微信用户推送消息是我在接收到参数后给做的一个动作,他表示跟他无关。所以我也无奈。不过刚刚有个童鞋回复了用session。这跟我之前思路类似。
@爱编程的大叔: 我现在打算这么处理:延迟发送,接收到的先判断是否重复。谢了哈
让对方排查,只发送一回。这样处理好轻松 :D
对方是客户那边找的一个兼职做外包的,他也是用百度上找到的工具来向我定时post消息。他表示不懂。我表示很心塞。
@7b: 被坑了···
@布鲁莫买: 是啊 所以我刚在闪存里看到有个童鞋发的“不给资源,只问结果”我表示很感同身受啊。
@7b: 感觉没法判断进行过滤啊。
@布鲁莫买: 所以我才来园子里看看有没有类似经历的童鞋或者有思路的童鞋给我个建议。表示心塞现在。
将post过来的数据生成hash值存入Session,然后每次接收到post过来的数据时,计算has值之后与Session辊的值进行比较,如果相同,就认为是重复post;如果不同,正常处理,并将新的hash值写入Session。
嗯 谢了 本来我是在session和cache之间徘徊的。
没法子判断,如果真实数据就是2条一模一样的内容呢
首先,最好的办法是从根源解决。
其次,可以对消息进行延迟发送(比如5s),在这个时间里,对消息进行判断重复(关键属性匹配)。
让对方发送过来的信息加个时间戳,你这边就根据时间戳判断是否重复。
加个时间戳吧,目前许多开放api都要求有timestamp和once字段,用来区别重复的请求。
Post数据加上区分标志,如时间戳等