Meilleures pratiques et limites

Tenez compte de ces consignes lorsque vous utilisez BatchJobService.

Améliorer le débit

  • Il est préférable d'avoir moins de tâches plus importantes plutôt qu'un nombre de tâches plus petites.

  • Classez les opérations importées par type d'opération. Par exemple, si votre tâche contient des opérations visant à ajouter des campagnes, des groupes d'annonces et des critères de groupe d'annonces, ordonnez les opérations de votre importation de sorte que toutes les opérations de campagne apparaissent en premier, suivies de toutes les opérations sur les groupes d'annonces, et enfin de toutes les opérations liées aux critères des groupes d'annonces.

  • Dans les opérations du même type, le regroupement par ressource parente peut améliorer les performances. Par exemple, si vous disposez d'une série d'objets AdGroupCriterionOperation, il peut être plus efficace de regrouper les opérations par groupe d'annonces que de combiner des opérations qui affectent les critères de groupe d'annonces dans différents groupes d'annonces.

Éviter les problèmes de simultanéité

  • Lorsque vous soumettez plusieurs tâches simultanées pour le même compte, essayez de réduire la probabilité que des tâches s'exécutent sur les mêmes objets en même temps, tout en conservant des tâches de grande taille. De nombreux jobs non terminés (dont l'état est RUNNING) qui tentent de modifier le même ensemble d'objets peuvent entraîner des problèmes d'interblocage, ce qui peut entraîner un important ralentissement et même des échecs de tâche.

  • N'envoyez pas plusieurs opérations qui modifient le même objet dans la même tâche, car le résultat peut être imprévisible.

Récupérer les résultats de manière optimale

  • N'interrogez pas l'état du job trop fréquemment, au risque d'atteindre des erreurs de limite de débit.

  • Ne récupérez pas plus de 1 000 résultats par page. Le serveur peut renvoyer moins d'erreurs en raison de la charge ou d'autres facteurs.

  • L'ordre des résultats sera le même que celui de l'importation.

Conseils d'utilisation supplémentaires

  • Vous pouvez définir la durée maximale d'exécution d'un job par lot avant son annulation. Lorsque vous créez une tâche par lot, définissez le champ metadata.execution_limit_seconds sur la limite de temps souhaitée, en secondes. Il n'y a pas de limite de temps par défaut si metadata.execution_limit_seconds n'est pas défini.

  • Il est recommandé de ne pas ajouter plus de 1 000 opérations par AddBatchJobOperationsRequest et d'utiliser sequence_token pour importer le reste des opérations dans la même tâche. Selon le contenu des opérations, un trop grand nombre d'opérations dans une seule AddBatchJobOperationsRequest peut entraîner une erreur REQUEST_TOO_LARGE. Vous pouvez gérer cette erreur en réduisant le nombre d'opérations et en réessayant AddBatchJobOperationsRequest.

Limites

  • Chaque BatchJob accepte jusqu'à un million d'opérations.

  • Chaque compte peut comporter jusqu'à 100 tâches actives ou en attente à la fois.

  • Les jobs en attente datant de plus de sept jours sont automatiquement supprimés.