如何减缓API的查询速度以防止多处理的查询上限?

2024-09-27 00:22:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了ConceptNet API上的查询上限问题。我正在下载几千个单词的词汇表中的每个单词的查询,但是API将查询限制为每分钟600个调用。如果我从一个脚本发送查询,我只需每隔0.1秒(1分钟/600次调用)进行一次调用。但是,我使用了几个同时查询API的进程。你知道吗

我目前的方法是使用JoinableQueue来跟踪调用了多少查询。当队列有600个元素时,我将暂停执行一分钟。你知道吗

这似乎不是最省时的解决方案,因为如果600个调用需要1分钟以上才能完成,那么服务器的计时器已经重置(我假设)。你知道吗

有没有更省时的办法来避免上限?你知道吗


Tags: 词汇表方法服务器脚本api元素队列进程
1条回答
网友
1楼 · 发布于 2024-09-27 00:22:23

我认为只需对进行API调用的代码的每个部分的执行计时,并将剩余的时间休眠0.1秒。我做了一些类似于测试线束的速率限制输出的事情,例如:

for x in xrange(event_count):

    start = time.time()
    yield json.dumps(m.get_mock()) + '\n'
    elapsed = time.time() - start
    time.sleep(max((1 / hits_sec) - elapsed, 0))

相关问题 更多 >

    热门问题