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