หมดเวลา

ไลบรารีไคลเอ็นต์ 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

ขีดจำกัดและข้อผิดพลาดของระยะหมดเวลา

แม้ว่าคุณจะเพิ่มระยะหมดเวลาของไคลเอ็นต์ได้ แต่ขีดจำกัดฝั่งเซิร์ฟเวอร์ยังคงมีผล คำขอที่ใช้เวลานานกว่า 2 ชั่วโมงอาจล้มเหลวและแสดงข้อยกเว้น Google::Ads::GoogleAds::Errors::GoogleAdsError หรือ GRPC::DeadlineExceeded ที่มีสถานะ DEADLINE_EXCEEDED