عملية استبعاد للقناة لمهلة معيّنة

تتضمّن كل خدمة في مكتبة عميل Ruby مهلة تلقائية وسياسة إعادة محاولة محدّدتَين في ملف client.rb الخاص بهذه الخدمة. على سبيل المثال، يمكنك فحص الطريقة self.configureفي CampaignServiceإعدادات العميل.

تجاوز المهلات التلقائية

يمكنك تجاوز هذه القيم التلقائية في مثيل خدمة بعد إنشاء مثيل لها من خلال ضبط config.timeout على مستوى الخدمة (بالثواني) أو من خلال ضبط timeout و retry_policy لطُرق RPC الفردية في config.rpcs:

require 'google/ads/google_ads'

client = Google::Ads::GoogleAds::GoogleAdsClient.new
ga_service = client.service.google_ads

ga_service.configure do |config|
  # Set the default timeout (in seconds) for all RPCs on this service instance.
  config.timeout = 120.0

  # Override the timeout or retry policy for specific RPC methods.
  config.rpcs.search_stream.timeout = 300.0
  config.rpcs.search.timeout = 120.0
  config.rpcs.search.retry_policy = {
    'initial_delay' => 5.0,
    'max_delay' => 60.0
  }
end

للاطّلاع على نص برمجي كامل وعملي، يُرجى الرجوع إلى مثال الرمز البرمجي set_custom_client_timeouts.rb على GitHub.

الحدود القصوى للمهلة والأخطاء

على الرغم من إمكانية زيادة مدة مهلة العميل، تظل الحدود القصوى من جهة الخادم سارية. قد تفشل الطلبات التي تستغرق أكثر من ساعتَين وقد تؤدي إلى ظهور استثناء Google::Ads::GoogleAds::Errors::GoogleAdsError أو GRPC::DeadlineExceeded مع حالة DEADLINE_EXCEEDED.