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

تتضمّن كل خدمة في مكتبة برامج 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.