Praktik Terbaik dan Batasan

Pertimbangkan panduan ini saat menggunakan BatchJobService:

  • Untuk throughput yang lebih baik, lebih sedikit tugas yang lebih besar lebih diutamakan daripada banyak tugas yang lebih kecil.
  • Sebaiknya tambahkan tidak lebih dari 1.000 operasi per AddBatchJobOperationsRequest dan gunakan sequence_token untuk mengupload sisa operasi ke tugas yang sama. Bergantung pada konten operasi, terlalu banyak operasi dalam satu AddBatchJobOperationsRequest dapat menyebabkan error REQUEST_TOO_LARGE. Anda dapat menangani error ini dengan mengurangi jumlah operasi dan mencoba ulang AddBatchJobOperationsRequest.
  • Saat mengirimkan beberapa tugas serentak untuk akun yang sama, cobalah untuk mengurangi kemungkinan tugas beroperasi pada objek yang sama secara bersamaan, sambil mempertahankan ukuran tugas yang besar. Banyak tugas yang belum selesai (dengan status RUNNING) yang mencoba mengubah kumpulan objek yang sama dapat menyebabkan kondisi seperti deadlock yang mengakibatkan perlambatan parah dan bahkan kegagalan tugas.
  • Jangan mengirimkan beberapa operasi yang mengubah objek yang sama dalam pekerjaan yang sama, karena hasilnya bisa tidak dapat diprediksi.
  • Untuk throughput yang lebih baik, urutkan operasi yang diupload menurut jenis operasi. Misalnya, jika tugas Anda berisi operasi untuk menambahkan kampanye, grup iklan, dan kriteria grup iklan, urutkan operasi dalam upload Anda sehingga semua operasi kampanye berada di urutan pertama, diikuti oleh semua operasi grup iklan, dan terakhir semua operasi kriteria grup iklan.
  • Jangan melakukan polling tentang status pekerjaan terlalu sering atau Anda berisiko mencapai error batas kapasitas.
  • Jangan mengambil lebih dari 1.000 hasil per halaman. Server dapat menampilkan lebih sedikit dari itu karena beban atau faktor lainnya.
  • Urutan hasil akan sama dengan urutan upload untuk batch processing.
  • Anda dapat menetapkan batas atas untuk durasi tugas batch boleh dijalankan sebelum dibatalkan. Saat membuat tugas batch baru, tetapkan kolom metadata.execution_limit_seconds ke batas waktu yang Anda inginkan, dalam detik. Tidak ada batas waktu default jika metadata.execution_limit_seconds tidak ditetapkan.

Batasan

  • Setiap BatchJob mendukung hingga satu juta operasi.
  • Setiap akun dapat memiliki hingga 100 tugas yang aktif atau tertunda secara bersamaan.
  • Tugas yang tertunda yang sudah lebih dari 7 hari akan dihapus secara otomatis.