يُرجى مراعاة الإرشادات التالية عند استخدام BatchJobService
.
تحسين سرعة نقل البيانات
يُفضّل أن تكون المهام الأكبر أقل من المهام الأصغر.
ترتيب العمليات التي تم تحميلها حسب نوع العملية على سبيل المثال، إذا كانت مهمتك تتضمّن عمليات لإضافة حملات ومجموعات إعلانية ومعايير مجموعات إعلانية، رتِّب العمليات في عملية التحميل بحيث تكون جميع عمليات الحملة أولاً، تليها جميع عمليات المجموعة الإعلانية، وأخيرًا جميع عمليات معايير المجموعة الإعلانية.
في العمليات من النوع نفسه، يمكن تحسين الأداء من خلال تجميعها حسب المورد الرئيسي. على سبيل المثال، إذا كان لديك سلسلة من
AdGroupCriterionOperation
الكائنات، قد يكون من الأفضل تجميع العمليات حسب المجموعة الإعلانية، بدلاً من دمج العمليات التي تؤثّر في معايير المجموعة الإعلانية في مجموعات إعلانية مختلفة.
تجنُّب مشاكل التزامن
عند إرسال مهام متزامنة متعددة للحساب نفسه، حاوِل تقليل احتمالية أن تعمل المهام على الكائنات نفسها في الوقت نفسه، مع الحفاظ على أحجام المهام الكبيرة. عندما يكون هناك العديد من المهام غير المكتملة التي تحمل الحالة
RUNNING
، تحاول هذه المهام تعديل المجموعة نفسها من العناصر، ما قد يؤدي إلى حالات شبيهة بالتعطّل التام ينتج عنها تباطؤ شديد وحتى تعذّر إكمال المهام.لا ترسِل عمليات متعددة تعدّل الكائن نفسه في مهمة واحدة، لأنّ النتيجة قد تكون غير متوقعة.
استرداد النتائج على النحو الأمثل
لا تطلب حالة المهمة بشكل متكرر جدًا، وإلا ستخاطر بمواجهة أخطاء الحدّ الأقصى لمعدّل الطلبات.
لا تستردّ أكثر من 1,000 نتيجة في كل صفحة. قد يعرض الخادم عددًا أقل من ذلك بسبب الحمولة أو عوامل أخرى.
سيكون ترتيب النتائج هو نفسه ترتيب التحميل.
إرشادات إضافية حول الاستخدام
يمكنك ضبط حد أعلى لمدة السماح بتشغيل مهمة مجمّعة قبل إلغائها. عند إنشاء مهمة معالجة مجمّعة جديدة، اضبط الحقل
metadata.execution_limit_seconds
على الحدّ الزمني المفضّل لديك، بالثواني. لا يوجد حد زمني تلقائي إذا لم يتم ضبطmetadata.execution_limit_seconds
.ننصحك بعدم إضافة أكثر من 1,000 عملية لكل
AddBatchJobOperationsRequest
واستخدامsequence_token
لتحميل بقية العمليات إلى مهمة التحميل نفسها. استنادًا إلى محتوى العمليات، قد يؤدي عدد كبير جدًا من العمليات فيAddBatchJobOperationsRequest
واحد إلى حدوث خطأREQUEST_TOO_LARGE
. يمكنك معالجة هذا الخطأ عن طريق تقليل عدد العمليات وإعادة محاولة تنفيذAddBatchJobOperationsRequest
.
القيود
يمكن لكل
BatchJob
تنفيذ ما يصل إلى مليون عملية.يمكن أن يضمّ كل حساب ما يصل إلى 100 مهمة نشطة أو في انتظار المراجعة في الوقت نفسه.
تتم تلقائيًا إزالة المهام المعلقة التي مرّ عليها أكثر من 7 أيام.
يبلغ الحد الأقصى لحجم كل
AddBatchJobOperationsRequest
10,484,504 بايت. إذا تجاوزت هذا الحد، ستتلقّىINTERNAL_ERROR
. يمكنك تحديد حجم الطلب قبل إرساله واتّخاذ الإجراء المناسب إذا كان كبيرًا جدًا.Java
static final int MAX_REQUEST_BYTES = 10_484_504; ... (code to get the request object) int sizeInBytes = request.getSerializedSize();
Python
from google.ads.googleads.client import GoogleAdsClient MAX_REQUEST_BYTES = 10484504 ... (code to get the request object) size_in_bytes = request._pb.ByteSize()
Ruby
require 'google/ads/google_ads' MAX_REQUEST_BYTES = 10484504 ... (code to get the request object) size_in_bytes = request.to_proto.bytesize
PHP
use Google\Ads\GoogleAds\V16\Resources\Campaign; const MAX_REQUEST_BYTES = 10484504; ... (code to get the request object) $size_in_bytes = $campaign->byteSize() . PHP_EOL;
NET.
using Google.Protobuf; const int MAX_REQUEST_BYTES = 10484504; ... (code to get the request object) int sizeInBytes = request.ToByteArray().Length;
Perl
use Devel::Size qw(total_size); use constant MAX_REQUEST_BYTES => 10484504; ... (code to get the request object) my $size_in_bytes = total_size($request);