Considere estas diretrizes ao usar
BatchJobService
.
Melhorar a capacidade de processamento
É preferível ter menos jobs maiores em vez de muitos jobs menores.
Ordenar operações enviadas por tipo de operação. Por exemplo, se sua tarefa contiver operações para adicionar campanhas, grupos de anúncios e critérios de grupos de anúncios, organize as operações no upload para que todas as operações de campanhas sejam primeiro, seguidas por todas as operações do grupo de anúncios e, por fim, todas as operações de critérios dos grupos de anúncios.
Dentro de operações do mesmo tipo, ele pode melhorar o desempenho para agrupá-las por recurso pai. Por exemplo, se você tiver uma série de objetos
AdGroupCriterionOperation
, pode ser mais eficiente agrupar operações por grupo de anúncios do que combinar operações que afetam os critérios do grupo em diferentes grupos.
Evitar problemas de simultaneidade
Ao enviar vários jobs simultâneos para a mesma conta, tente reduzir a probabilidade de eles operarem nos mesmos objetos ao mesmo tempo, mantendo grandes tamanhos de jobs. Várias tarefas incompletas (com status de
RUNNING
) que tentam modificar o mesmo conjunto de objetos podem levar a condições de impasse, resultando em uma severa lentidão e até mesmo falhas nas tarefas.Não envie várias operações que mudam o mesmo objeto no mesmo job, já que o resultado pode ser imprevisível.
Recuperar os resultados da maneira ideal
Não pesquise o status do job com muita frequência para não correr o risco de atingir erros de limite de taxa.
Não recupere mais de mil resultados por página. O servidor pode retornar menos que isso devido à carga ou a outros fatores.
A ordem dos resultados será igual à ordem de upload.
Orientações de uso adicionais
É possível definir um limite superior para o período em que um job em lote pode ser executado antes de ser cancelado. Ao criar um novo job em lote, defina o campo
metadata.execution_limit_seconds
com seu limite de tempo preferido, em segundos. Não haverá limite de tempo padrão semetadata.execution_limit_seconds
não for definido.É recomendável adicionar no máximo 1.000 operações por
AddBatchJobOperationsRequest
e usarsequence_token
para fazer upload do restante das operações para o mesmo job. Dependendo do conteúdo das operações, muitas operações em um únicoAddBatchJobOperationsRequest
podem causar um erroREQUEST_TOO_LARGE
. Para solucionar esse erro, reduza o número de operações e tenteAddBatchJobOperationsRequest
novamente.
Limitações
Cada
BatchJob
aceita até um milhão de operações.Cada conta pode ter até 100 trabalhos ativos ou pendentes ao mesmo tempo.
Jobs pendentes com mais de sete dias são removidos automaticamente.