我尝试使用Google API客户端进行Google Big Query调用时,看到403 RANDOMLY(有些时候有效并且其他时间失败)。
为了提供更多的上下文,我每秒5-10次进行几次api调用,所以当我按顺序进行调用时,我没有得到错误。但是,当我每秒进行几次调用时,我收到错误。我在这里检查了BigQuery速率限制:https://developers.google.com/bigquery/quota-policy 它说我可以发出多达20个并发查询。我很确定,我没有达到速率限制。
我会感谢任何有系统地解决这个问题的建议或建议。 谢谢, NAVNEET
以下是代码:
def initialize
client = Google::APIClient.new
path_to_key_file = "/Users/abcyoo/crazy/crazy-google-client-key.p12" #dev
passphrase = "XXXXXXXX"
key = Google::APIClient::PKCS12.load_key(path_to_key_file, passphrase)
service_account = Google::APIClient::JWTAsserter.new(
'1063766308008@developer.gserviceaccount.com',
'https://www.googleapis.com/auth/bigquery',
key)
client.authorization = service_account.authorize
client.authorization.fetch_access_token!
bq = client.discovered_api("bigquery", "v2")
return client,bq
end
以下是我收到的错误消息:
Signet::AuthorizationError (Authorization failed. Server message:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Google Accounts</title><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=0" /><link rel='stylesheet' type='text/css' href='https://ssl.gstatic.com/accounts/o/1893590695-error_page_css_ltr.css'>
403。这是一个错误。
):
signet (0.4.5) lib/signet/oauth_2/client.rb:875:in `fetch_access_token'
signet (0.4.5) lib/signet/oauth_2/client.rb:888:in `fetch_access_token!'
app/controllers/application_controller.rb:105:in `initialize'
答案 0 :(得分:1)
你是否每秒呼叫client.discoverty_api 5-10次?如果是这样,那可能是限制你的速度。你可以每个线程调用一次或一次并重用bigquery服务吗?