Práticas recomendadas e limitações

Considere estas diretrizes ao usar BatchJobService:

  • Para uma melhor capacidade, é preferível ter menos jobs maiores em vez de muitos jobs menores.
  • É 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 lidar com esse erro, reduza o número de operações e refaça a AddBatchJobOperationsRequest.
  • 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.
  • Para melhores resultados, organize as operações por tipo de operação Por exemplo, caso sua tarefa inclua operações para adicionar campanhas, grupos de anúncios e critérios de grupos, organize as operações no upload para que todas as operações de campanha 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.
  • 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á a mesma que a do upload para processamento em lote.
  • É 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.

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.