确保 Google API 的批处理请求每秒发生一次
Ensure Batch request for Google API occurs once per second
我在发送 pagespeed API 的批量请求时遇到了一些问题。根据我在 google 开发人员控制台中看到的情况,我每秒应该有 100 个请求,每天最多 25,000 个。但是,我 运行 遇到了一个问题,即使只是尝试每秒执行 50 次。我试图将时间强加到我的 ruby 应用程序中,但出于某种原因,这并没有改变错误。我仍然从 google 得到相当数量的结果的 rateLimitExceeded 错误。如果重要的话,我正在对包含 ~1000 个 url 的数组执行此操作。
这是我的批处理函数,我在另一个函数的循环中调用它,我认为这可能更适合计时。但这似乎并没有改变什么。
def send_request(urls)
@psservice.batch do |ps|
urls.each do |url|
ps.run_pagespeed(url) do |result, err|
err.nil? ? @data.push(result) : @errors.push("#{url}, #{err}")
end
end
end
end
这是从
调用的
@urls.each_slice(50).to_a.each do |url_list|
send_request(url_list, options)
sleep(1)
end
知道为什么会发生这种情况吗?提前致谢
我误解了 Google Pagespeed 的配额 - 它是 100 个请求/100 秒。所以一个请求一秒钟。似乎我越检查它实际上是 1 个请求/秒。我仍然无法尝试 运行 100 个请求然后等待 100 秒。
我在发送 pagespeed API 的批量请求时遇到了一些问题。根据我在 google 开发人员控制台中看到的情况,我每秒应该有 100 个请求,每天最多 25,000 个。但是,我 运行 遇到了一个问题,即使只是尝试每秒执行 50 次。我试图将时间强加到我的 ruby 应用程序中,但出于某种原因,这并没有改变错误。我仍然从 google 得到相当数量的结果的 rateLimitExceeded 错误。如果重要的话,我正在对包含 ~1000 个 url 的数组执行此操作。
这是我的批处理函数,我在另一个函数的循环中调用它,我认为这可能更适合计时。但这似乎并没有改变什么。
def send_request(urls)
@psservice.batch do |ps|
urls.each do |url|
ps.run_pagespeed(url) do |result, err|
err.nil? ? @data.push(result) : @errors.push("#{url}, #{err}")
end
end
end
end
这是从
调用的@urls.each_slice(50).to_a.each do |url_list|
send_request(url_list, options)
sleep(1)
end
知道为什么会发生这种情况吗?提前致谢
我误解了 Google Pagespeed 的配额 - 它是 100 个请求/100 秒。所以一个请求一秒钟。似乎我越检查它实际上是 1 个请求/秒。我仍然无法尝试 运行 100 个请求然后等待 100 秒。