Hết thời gian chờ

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.