Các phương pháp hay nhất và hạn chế

Hãy xem xét các nguyên tắc này khi sử dụng BatchJobService.

Cải thiện công suất

  • Những công việc có quy mô lớn hơn sẽ được ưu tiên hơn so với những công việc quy mô nhỏ.

  • Sắp xếp các thao tác tải lên theo loại thao tác. Ví dụ: nếu công việc của bạn chứa các hoạt động thêm chiến dịch, nhóm quảng cáo và tiêu chí nhóm quảng cáo, hãy sắp xếp các hoạt động trong tệp tải lên sao cho tất cả hoạt động của chiến dịch được thực hiện trước, sau đó là tất cả hoạt động nhóm quảng cáo và cuối cùng là tất cả hoạt động tiêu chí của nhóm quảng cáo.

  • Trong các thao tác thuộc cùng một loại, tính năng này có thể cải thiện hiệu suất để nhóm chúng theo tài nguyên mẹ. Ví dụ: nếu bạn có một loạt đối tượng AdGroupCriterionOperation, bạn có thể nhóm các hoạt động theo nhóm quảng cáo một cách hiệu quả hơn thay vì kết hợp các thao tác ảnh hưởng đến tiêu chí nhóm quảng cáo trong nhiều nhóm quảng cáo.

Tránh các vấn đề đồng thời

  • Khi gửi nhiều công việc đồng thời cho cùng một tài khoản, hãy cố gắng giảm khả năng các công việc hoạt động cùng lúc trên cùng một đối tượng, trong khi vẫn duy trì quy mô công việc lớn. Nhiều công việc chưa hoàn tất (có trạng thái RUNNING) cố gắng thay đổi cùng một nhóm đối tượng có thể dẫn đến các tình trạng giống như tắc nghẽn dẫn đến làm chậm nghiêm trọng và thậm chí là thất bại trong công việc.

  • Đừng gửi nhiều thao tác làm biến đổi cùng một đối tượng trong cùng một công việc, vì kết quả có thể khó dự đoán.

Truy xuất kết quả một cách tối ưu

  • Không thăm dò trạng thái công việc quá thường xuyên, nếu không bạn có nguy cơ gặp phải lỗi giới hạn tốc độ.

  • Đừng truy xuất nhiều hơn 1.000 kết quả trên mỗi trang. Máy chủ có thể trả về ít hơn do tải hoặc các yếu tố khác.

  • Thứ tự kết quả sẽ giống thứ tự tải lên.

Hướng dẫn sử dụng bổ sung

  • Bạn có thể đặt giới hạn trên cho khoảng thời gian cho phép chạy một công việc hàng loạt trước khi bị huỷ. Khi tạo một công việc hàng loạt mới, hãy đặt trường metadata.execution_limit_seconds theo giới hạn thời gian mà bạn muốn, tính bằng giây. Không có giới hạn thời gian mặc định nếu bạn không đặt metadata.execution_limit_seconds.

  • Bạn không nên thêm quá 1.000 thao tác cho mỗi AddBatchJobOperationsRequest và sử dụng sequence_token để tải phần còn lại của các thao tác lên cùng một công việc. Tuỳ thuộc vào nội dung của các thao tác, quá nhiều thao tác trong một AddBatchJobOperationsRequest có thể gây ra lỗi REQUEST_TOO_LARGE. Bạn có thể xử lý lỗi này bằng cách giảm số lượng thao tác rồi thử lại AddBatchJobOperationsRequest.

Các điểm hạn chế

  • Mỗi BatchJob hỗ trợ tối đa một triệu thao tác.

  • Mỗi tài khoản có thể có tối đa 100 lệnh đang hoạt động hoặc đang chờ xử lý cùng một lúc.

  • Các công việc đang chờ xử lý đã tồn tại hơn 7 ngày sẽ tự động bị xoá.