هر سرویس در کتابخانه کارخواه 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 ایجاد کنند.