我有一个python程序,它会查询youtube以获取视频详细信息。我使用的是版本-3 api。我有多个进程 m 和每个python进程中有10个进程的python池。
songs_pool = Pool()
songs_pool =Pool(processes=10)
return_pool = songs_pool.map(getVideo,songs_list)
当m的值增加到2以上并且池增加到> 5时,我得到一些客户端错误。我得到了禁止的错误。当我检查Google Analytics中的请求数时,它会显示请求数为每秒250个。但根据文档,限制是每秒3000个请求。我不明白为什么我会收到客户端错误。你能告诉我是否有办法不能解决这个错误并更快地运行程序。
如果m = 2且process = 10,我没有错误但是需要很长时间才能完成。 但是如果我增加它们,那么我会得到客户端错误,这些错误约占总请求的5%。
答案 0 :(得分:0)
每个用户限制是来自单个IP地址的每秒3000个请求,并且只要您在给定秒内超过该请求,您就会开始获取禁用错误。您在开发人员控制台中看到的分析只会报告5分钟内的平均请求数;因此,如果您有4分钟的零请求,然后开始运行您的例程,则控制台可能每秒仅显示250个请求(平均值),但您的应用程序可能在给定的一两个时间段内超出限制。
如果您关注速度,似乎您正以最佳方式处理它;你会想要以足够快的速度运行它以获得极少数的错误(所以你知道你会在你的极限下停留在那里)。但是,另一种选择可能是研究使用etags;如果您发现自己要求对相同的视频进行大量信息,您可以让etags告诉您是否有任何信息发生了变化(如果API响应没有任何更改,则不会计入您的配额或您的要求/秒)