Mỗi dịch vụ trong thư viện ứng dụng Ruby đều có chính sách thời gian chờ và thử lại mặc định được chỉ định trong tệp client.rb của dịch vụ đó. Ví dụ: bạn có thể kiểm tra phương thức self.configure trong cấu hình ứng dụng CampaignService.
Ghi đè thời gian chờ mặc định
Bạn có thể ghi đè các giá trị mặc định này trên một phiên bản dịch vụ sau khi khởi tạo bằng cách đặt config.timeout ở cấp dịch vụ (tính bằng giây) hoặc bằng cách định cấu hình timeout và retry_policy cho từng phương thức RPC trên 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
Để xem một tập lệnh hoạt động hoàn chỉnh, hãy xem ví dụ về mã set_custom_client_timeouts.rb trên GitHub.
Giới hạn thời gian chờ và lỗi
Mặc dù bạn có thể tăng thời gian chờ của ứng dụng khách, nhưng các giới hạn phía máy chủ vẫn được áp dụng. Những yêu cầu mất hơn 2 giờ có thể không thành công và gây ra một ngoại lệ Google::Ads::GoogleAds::Errors::GoogleAdsError hoặc GRPC::DeadlineExceeded với trạng thái DEADLINE_EXCEEDED.