Я получаю 403 User Rate Limit Exceeded, ошибка при выполнении запросов, но я уверен, что не превышаю. В прошлом я достиг предела скорости выполнения вставок, и это было отражено в списке заданий как
[errorResult] => Массив ([причина] => rateLimitExceeded [message] => Превышены пределы скорости: слишком много импорта для этого проекта)
Но в этом случае список заданий не отражает запрос (ни ошибки, ни выполненные), и при изучении списка заданий я не достиг пределов или был близок к его достижению (не более 4 одновременных запросов и каждый обработка 692297 байт)
У меня активен биллинг, и я сделал всего 2,5 тыс. Запросов за последние 28 дней.
Изменить: ограничение пользователя установлено до 500,0 запросов в секунду на пользователя.
Изменить: получен код ошибки
User Rate Limit Exceeded
Превышен предел скорости пользователя
Ошибка 403
Изменить: код, который я использую для выполнения запросов и получения результатов
function query_data($project,$dataset,$query,$jobid=null){
$jobc = new JobConfigurationQuery();
$query_object = new QueryRequest();
$dataset_object = new DatasetReference();
$dataset_object->setProjectId($project);
$dataset_object->setDatasetId($dataset);
$query_object->setQuery($query);
$query_object->setDefaultDataset($dataset_object);
$query_object->setMaxResults(16000);
$query_object->setKind('bigquery#queryRequest');
$query_object->setTimeoutMs(0);
$ok = false;
$sleep = 1;
while(!$ok){
try{
$response_data = $this->bq->jobs->query($project, $query_object);
$ok = true;
}catch(Exception $e){ //sleep when BQ API not avaible
sleep($sleep);
$sleep += rand(0,60);
}
}
try{
$response = $this->bq->jobs->getQueryResults($project, $response_data['jobReference']['jobId']);
}catch(Exception $e){
//do nothing, se repite solo
}
$tries = 0;
while(!$response['jobComplete']&&$tries<10){
sleep(rand(5,10));
try{
$response = $this->bq->jobs->getQueryResults($project, $response_data['jobReference']['jobId']);
}catch(Exception $e){
//do nothing, se repite solo
}
$tries++;
}
$result=array();
foreach($response['rows'] as $k => $row){
$tmp_row=array();
foreach($row['f'] as $field => $value){
$tmp_row[$response['schema']['fields'][$field]['name']] = $value['v'];
}
$result[]=$tmp_row;
unset($response['rows'][$k]);
}
return $result;
}
Есть ли другие ограничения скорости? или это баг?
Спасибо!