Práticas recomendadas e limitações

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 se metadata.execution_limit_seconds não for definido.

  • É recomendável adicionar no máximo 1.000 operações por AddBatchJobOperationsRequest e usar sequence_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 único AddBatchJobOperationsRequest podem causar um erro REQUEST_TOO_LARGE. Para solucionar esse erro, reduza o número de operações e tente AddBatchJobOperationsRequest 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.