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