我有一个接受包含 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)
这个片段在一个长时间运行的过程中,即通过 tcp 接受流式消息。
每次我传入相同的 url 时, l 每次都返回 True。
但是当我在解释器中尝试时一切都很好,当设置的时间没有到期时它返回 False。
这是否与脚本正在运行,而集合被添加到的事实有关?
实例问题?