【发布时间】:2013-11-10 22:00:27
【问题描述】:
我有一个接受包含 url 的消息的系统,如果消息中包含某些关键字,则会使用 url 作为参数进行 api 调用。
为了节省处理并保持我的最终演示效率。
我不希望在某个时间范围内提交重复的网址。
所以如果这个 url ---> http://instagram.com/p/gHVMxltq_8/ 进来并提交给 api
url = incoming.msg['urls']
url = urlparse(url)
if url.netloc == "instagram.com":
r = requests.get("http://api.some.url/show?url=%s"% url)
然后 3 秒后相同的 url 进来,我不希望它提交给 api。
我可以部署什么编程方法来消除/限制基于时间提交给 api 的重复消息?
使用 TIM PETERS 方法更新:
limit = DecayingSet(86400)
l = limit.add(longUrl)
if l == False:
pass
else:
r = requests.get("http://api.some.url/show?url=%s"% url)
这个 sn-p 在一个长时间运行的进程中,即通过 tcp 接受流式消息。
每次我传入相同的 url 时,l 每次都返回 True。
但是当我在解释器中尝试时一切都很好,当设置的时间没有到期时它返回 False。
这是否与脚本正在运行而集合被添加到这一事实有关?
实例问题?
【问题讨论】:
-
我不明白
f在你的代码的第三行做了什么。 -
不得不重新启动我的键盘搞砸了..检查编辑
标签: python algorithm parsing message-queue messaging