Sprawdzone metody i ograniczenia

Gdy używasz BatchJobService, weź pod uwagę te wskazówki:

  • Aby uzyskać lepszą przepustowość, preferujemy mniej dużych zadań zamiast wielu mniejszych zadań.
  • Zalecamy dodawanie nie więcej niż 1000 operacji do AddBatchJobOperationsRequest i użycie sequence_token do przesłania pozostałych operacji do tego samego zadania. W zależności od treści operacji zbyt wiele operacji w 1 AddBatchJobOperationsRequest może spowodować błąd REQUEST_TOO_LARGE. Aby rozwiązać ten problem, zmniejsz liczbę operacji i spróbuj ponownie wykonać AddBatchJobOperationsRequest.
  • Przesyłając wiele zadań równoczesnych dla tego samego konta, spróbuj zmniejszyć prawdopodobieństwo wykonywania zadań na tych samych obiektach w tym samym czasie, przy zachowaniu dużych rozmiarów zadań. Wiele nieukończonych zadań (ze stanem RUNNING), które próbują zmodyfikować ten sam zbiór obiektów, może prowadzić do sytuacji przypominających zakleszczenie, które powodują duże spowolnienie, a nawet awarie.
  • Nie przesyłaj wielu operacji, które zmieniają ten sam obiekt w tym samym zadaniu, ponieważ wynik może być nieprzewidywalny.
  • Aby uzyskać lepszą przepustowość, uporządkuj przesłane operacje według typu operacji. Jeśli np. Twoje zadanie obejmuje operacje dodawania kampanii, grup reklam i kryteriów grup reklam, uporządkuj przesyłane operacje tak, aby wszystkie operacje kampanii były widoczne jako pierwsze, po nich wszystkie operacje związane z grupą reklam, a na koniec wszystkie operacje dotyczące kryteriów grupy reklam.
  • Nie odpytuj stanu zadania zbyt często, ponieważ grozi to wystąpieniem błędów limitu liczby żądań.
  • Pobieraj maksymalnie 1000 wyników na stronę. Serwer może zwrócić ich mniej z powodu obciążenia lub innych czynników.
  • Kolejność wyników będzie taka sama jak kolejność przesyłania w przypadku przetwarzania zbiorczego.
  • Możesz ustawić górną granicę czasu, przez jaki zadanie wsadowe może być uruchamiane, zanim zostanie anulowane. Podczas tworzenia nowego zadania wsadowego ustaw w polu metadata.execution_limit_seconds preferowany limit czasu (w sekundach). Jeśli zasada metadata.execution_limit_seconds nie jest ustawiona, nie ma domyślnego limitu czasu.

Ograniczenia

  • Każdy zasób BatchJob obsługuje do miliona operacji.
  • Na każdym koncie może być jednocześnie do 100 aktywnych lub oczekujących zadań.
  • Oczekujące zadania starsze niż 7 dni są automatycznie usuwane.