Я пытаюсь развернуть те же 10 целей на большом количестве веб-сайтов. У меня есть цели, хранящиеся в toAddArray, и в цикле они будут создаваться или обновляться в зависимости от количества целей текущего сайта. Сначала я создаю пакет, затем в цикле добавляю цели в пакет (я пропустил код цели, потому что запись не завершается ошибкой), а затем выполняю пакет.
Код, который я запускаю
//Create batch from Analytics Object
BatchRequest b = analytics.batch();
// in loop determine create or update based off current Goal list size
FOR LOOP IS HERE
if(y < currentSize)
{
//some code for inserting the goal
analytics.management().goals().update(ACTIVE_ACCOUNT_ID, ACTIVE_PROPERTY_ID, ACTIVE_PROFILE_ID, String.valueOf(y+1), toAddArray[y]).queue(b, setCallback("Successfully Added Goal"));
}
else{
// Some code for when I update the goal
// Send to queue
analytics.management().goals().insert(ACTIVE_ACCOUNT_ID, ACTIVE_PROPERTY_ID, ACTIVE_PROFILE_ID, toAddArray[y]).queue(b, setCallback("Successfully Added Goal"));
}
FOR LOOP ENDS
//Execute the batch
b.execute();
Что происходит
Когда я запускаю это, я получаю обратные вызовы для 10 целей, первые 5-6 возвращаются успешно, а последние 4 возвращаются с превышением предела скорости. Насколько мне известно, весь смысл пакетной системы состоит в том, чтобы скомпилировать URL-адреса в один хит и отправить их все сразу, чтобы снизить нагрузку на сервер.
Эта система, кажется, работает больше как система очередей, которая имеет свое место, но не помогает мне уменьшить количество операций записи, с которыми я работаю. Поскольку я пишу 10 целей на 1000 или около того веб-сайтов, я смотрю на 10 тысяч записей в день. С ограничением в 500 записей на проект в день, это 20-дневная работа. Если бы у меня была запись только для каждого профиля, это заняло бы 2 дня. У меня есть запросы к команде Google, чтобы увеличить мои квоты API и добавить доступ к бета-версии Goal для еще 5 проектов, чтобы я мог начать переключать ключи, но в то же время я хочу понять, могу ли я что-то сделать, чтобы получить пакетную обработку работать как одна единственная запись.