Mỗi dịch vụ trong thư viện ứng dụng Ruby đều có thời gian chờ mặc định và chính sách thử lại đượ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 client.
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 thực thể dịch vụ sau khi khởi tạo thực thể đó
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 tập lệnh hoạt động hoàn chỉnh, hãy xem
set_custom_client_timeouts.rbví dụ về mã trên
GitHub.
Giới hạn và lỗi về thời gian chờ
Mặc dù bạn có thể tăng thời lượng thời gian chờ của ứng dụng, nhưng các giới hạn phía máy chủ vẫn áp dụng. Các yêu cầu mất hơn 2 giờ có thể không thành công và tạo ra ngoại lệ Google::Ads::GoogleAds::Errors::GoogleAdsError hoặc GRPC::DeadlineExceeded với trạng thái DEADLINE_EXCEEDED.