أفضل الممارسات والقيود

ننصحك باتّباع هذه الإرشادات عند استخدام 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 أيام.