แนวทางปฏิบัติแนะนำและข้อจำกัด

โปรดคำนึงถึงหลักเกณฑ์เหล่านี้เมื่อใช้ BatchJobService

ปรับปรุงอัตราการส่งข้อมูล

  • งานใหญ่ๆ จำนวนน้อยๆ ควรมากกว่างานเล็กๆ จำนวนมาก

  • ลำดับการดำเนินการที่อัปโหลดตามประเภทการดำเนินการ เช่น หากงานของคุณมีการดำเนินการเพื่อเพิ่มเกณฑ์สำหรับแคมเปญ กลุ่มโฆษณา และกลุ่มโฆษณา ให้จัดเรียงการดำเนินการในการอัปโหลดเพื่อให้การดำเนินการแคมเปญทั้งหมดเป็นลำดับแรก ตามด้วยการดำเนินการของกลุ่มโฆษณาทั้งหมด และสุดท้ายคือการดำเนินการสำหรับเกณฑ์ของกลุ่มโฆษณาทั้งหมด

  • ภายในการดำเนินการประเภทเดียวกัน จะช่วยปรับปรุงประสิทธิภาพโดยจัดกลุ่มตามทรัพยากรระดับบนสุดได้ ตัวอย่างเช่น หากคุณมีชุดของออบเจ็กต์ AdGroupCriterionOperation อาจมีประสิทธิภาพมากกว่าในการจัดกลุ่มการดำเนินการตามกลุ่มโฆษณา แทนที่จะรวมการดำเนินการที่ส่งผลต่อเกณฑ์ของกลุ่มโฆษณาในกลุ่มโฆษณาต่างๆ

หลีกเลี่ยงปัญหาการเกิดขึ้นพร้อมกัน

  • เมื่อส่งงานหลายรายการพร้อมกันสำหรับบัญชีเดียวกัน ให้พยายามลดโอกาสที่งานจะดำเนินการบนออบเจ็กต์เดียวกันพร้อมกันแต่ยังคงรักษาขนาดงานขนาดใหญ่ไว้ งานที่ยังไม่เสร็จหลายงาน (ที่มีสถานะ RUNNING) ที่พยายามกลายพันธุ์ของออบเจ็กต์ชุดเดียวกันอาจทำให้เกิดภาวะเหมือนการติดตาย ส่งผลให้การทำงานช้าลงอย่างมากหรือแม้กระทั่งทำงานไม่สำเร็จ

  • อย่าส่งการดำเนินการหลายรายการที่เปลี่ยนแปลงออบเจ็กต์เดียวกันในงานเดียวกัน เนื่องจากผลลัพธ์จะคาดเดาไม่ได้

ดึงผลลัพธ์ออกมาดีที่สุด

  • อย่าสำรวจสถานะของงานบ่อยเกินไป ไม่เช่นนั้นคุณอาจเสี่ยงที่จะเกิดข้อผิดพลาดเกี่ยวกับขีดจำกัดอัตรา

  • อย่าดึงผลการค้นหาเกิน 1,000 รายการต่อหน้า เซิร์ฟเวอร์อาจแสดงน้อยกว่าที่ควรจะเป็นเนื่องจากภาระงานหรือปัจจัยอื่นๆ

  • ลำดับผลลัพธ์จะเหมือนกับลำดับการอัปโหลด

คำแนะนำการใช้งานเพิ่มเติม

  • คุณตั้งค่าขอบเขตสูงสุดได้ว่าจะอนุญาตให้งานแบบกลุ่มทำงานเป็นเวลานานเท่าใดก่อนที่จะยกเลิก เมื่อสร้างงานแบบกลุ่มใหม่ ให้ตั้งค่าช่อง metadata.execution_limit_seconds เป็นขีดจำกัดเวลาที่ต้องการ หน่วยเป็นวินาที หากไม่ได้ตั้งค่า metadata.execution_limit_seconds ไว้จะไม่มีขีดจำกัดเวลาเริ่มต้น

  • ขอแนะนำให้เพิ่มการดำเนินการไม่เกิน 1,000 รายการต่อ AddBatchJobOperationsRequest และใช้ sequence_token เพื่ออัปโหลดการดำเนินการที่เหลือไปยังงานเดียวกัน การดำเนินการที่มากเกินไปใน AddBatchJobOperationsRequest รายการเดียวอาจทำให้เกิดข้อผิดพลาด REQUEST_TOO_LARGE ทั้งนี้ขึ้นอยู่กับเนื้อหาของการดำเนินการ คุณจัดการข้อผิดพลาดนี้ได้โดยลดจำนวนการดำเนินการลงแล้วลองใช้ AddBatchJobOperationsRequest อีกครั้ง

ข้อจำกัด

  • BatchJob แต่ละรายการรองรับการดำเนินการสูงสุด 1 ล้านรายการ

  • แต่ละบัญชีจะมีงานที่ทำงานอยู่หรือรอดำเนินการพร้อมกันได้สูงสุด 100 งาน

  • ระบบจะนำงานที่รอดำเนินการซึ่งมีอายุนานกว่า 7 วันออกโดยอัตโนมัติ