Учитывайте эти рекомендации при использовании BatchJobService
.
Повышение пропускной способности
Меньшее количество крупных рабочих мест предпочтительнее множества мелких рабочих мест.
Упорядочите загруженные операции по типу операции. Например, если ваше задание содержит операции по добавлению кампаний, групп объявлений и критериев групп объявлений, расположите операции в загрузке так, чтобы сначала были все операции кампании , затем все операции группы объявлений и, наконец, все операции группы объявлений. критериальные операции .
В операциях одного типа можно повысить производительность, сгруппировав их по родительскому ресурсу. Например, если у вас есть ряд объектов
AdGroupCriterionOperation
, может быть более эффективно группировать операции по группам объявлений, а не смешивать операции, которые влияют на критерии группы объявлений в разных группах объявлений.
Избегайте проблем с параллелизмом
При отправке нескольких одновременных заданий для одной и той же учетной записи постарайтесь снизить вероятность одновременной работы заданий с одними и теми же объектами, сохраняя при этом большие размеры заданий. Многие незавершенные задания (со статусом
RUNNING
), которые пытаются изменить один и тот же набор объектов, могут привести к состояниям, подобным тупику, что приведет к серьезному замедлению работы и даже к сбоям в работе.Не отправляйте несколько операций, которые изменяют один и тот же объект в одном задании, поскольку результат может быть непредсказуемым.
Оптимальное получение результатов
Не проверяйте статус задания слишком часто, иначе вы рискуете столкнуться с ошибками ограничения скорости.
Не получайте более 1000 результатов на страницу. Сервер может вернуть меньшее количество данных из-за нагрузки или других факторов.
Порядок результатов будет таким же, как и порядок загрузки.
Дополнительные рекомендации по использованию
Вы можете установить верхнюю границу времени, в течение которого пакетное задание может выполняться до его отмены. При создании нового пакетного задания установите в поле
metadata.execution_limit_seconds
желаемое ограничение по времени в секундах. Ограничение по времени по умолчанию отсутствует, если не заданmetadata.execution_limit_seconds
.Рекомендуется добавлять не более 1000 операций на каждый
AddBatchJobOperationsRequest
и использоватьsequence_token
для загрузки остальных операций в то же задание. В зависимости от содержимого операций слишком много операций в одномAddBatchJobOperationsRequest
может привести к ошибкеREQUEST_TOO_LARGE
. Эту ошибку можно устранить, уменьшив количество операций и повторивAddBatchJobOperationsRequest
.
Ограничения
Каждое
BatchJob
поддерживает до миллиона операций.В каждой учетной записи одновременно может быть до 100 активных или ожидающих заданий.
Ожидающие задания старше 7 дней автоматически удаляются.