ดิสเพลย์จำนวนมากและ เมธอด API ของ Video 360 จะดำเนินการที่ซับซ้อน ซึ่งอาจใช้เวลานานกว่า ไม่กี่วินาทีจึงจะเสร็จสมบูรณ์ ในบางครั้ง คำขอที่ส่งไปยังวิธีการเหล่านี้จะเกินเกณฑ์ได้ เวลาในการตอบสนองที่คาดไว้ ซึ่งทำให้เกิดข้อผิดพลาดใน API หรือฝั่งไคลเอ็นต์ หน้านี้แสดงรายการ แนวทางการจัดการปัญหาที่เกิดจากเวลาในการตอบสนองของคำขอที่นานขึ้น
เพิ่มระยะหมดเวลาเริ่มต้นในไลบรารีของไคลเอ็นต์
วิธีการที่เฉพาะเจาะจงจำนวนหนึ่งมีการติดป้ายกำกับไว้ในเอกสารอ้างอิง หรือเวลาในการตอบสนองเกินกว่าที่คาดไว้เป็นประจำ วิธีอื่นๆ อาจแสดง เวลาในการตอบสนองสูงเป็นระยะๆ
ขีดจำกัดการหมดเวลาเริ่มต้นสำหรับไลบรารีของไคลเอ็นต์บางรายการอาจทำให้เกิดข้อผิดพลาดเมื่อ การส่งคำขอที่มีเวลาในการตอบสนองสูง ระยะหมดเวลาเริ่มต้นสำหรับชุดย่อยของไคลเอ็นต์ที่รองรับ ไลบรารีมีดังนี้
- Java: 20 วินาที
- Python: 60 วินาที
- PHP: 60 วินาที
คุณหลีกเลี่ยงระยะหมดเวลาฝั่งไคลเอ็นต์ได้ด้วยการเพิ่มระยะหมดเวลาเริ่มต้นเหล่านี้ ติดตาม คำแนะนำเหล่านี้เพื่อปรับระยะหมดเวลาเริ่มต้นสำหรับไลบรารีของไคลเอ็นต์ของคุณระหว่าง รันไทม์:
Java
นำเข้าทรัพยากรที่จำเป็น
import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestInitializer; import java.io.IOException;
สร้างฟังก์ชันสำหรับตั้งค่าระยะหมดเวลาของ HTTP
/** * Adjusts HTTP timeout values used by the provided request initializer. * * @param requestInitializer The {@link HttpRequestInitializer} used to authorize requests. * @param newHttpTimeout The HTTP timeout for requests in seconds. * @return An {@link HttpRequestInitializer} with modified HTTP timeout values. */ private static HttpRequestInitializer setHttpTimeout( final HttpRequestInitializer requestInitializer, final int newHttpTimeout) { return new HttpRequestInitializer() { @Override public void initialize(HttpRequest httpRequest) throws IOException { requestInitializer.initialize(httpRequest); httpRequest.setConnectTimeout(newHttpTimeout * 1_000); httpRequest.setReadTimeout(newHttpTimeout * 1_000); } }; }
ฟังก์ชันเรียกใช้เมื่อสร้างดิสเพลย์และ ไคลเอ็นต์ Video 360 API
// Create authorized API client with non-default timeouts. DisplayVideo service = new DisplayVideo.Builder( credential.getTransport(), credential.getJsonFactory(), setHttpTimeout(credential, http-timeout-in-seconds) ) .setApplicationName("displayvideo-java-installed-app-sample") .build();
Python
นำเข้าโมดูล http ของไลบรารีของไคลเอ็นต์ Google API ใน Python
from googleapiclient import http
อัปเดตค่าคงที่ระยะหมดเวลาเริ่มต้น
http.DEFAULT_HTTP_TIMEOUT_SEC = http-timeout-in-seconds
สร้างบริการ API
# Build the API service. service = discovery.build( 'displayvideo', 'v3', discoveryServiceUrl=discovery_url, credentials=credentials)
PHP
ดาวน์โหลดและติดตั้งไลบรารี HTTP ของ Guzzle โดยใช้ ผู้ประพันธ์เพลง
composer require guzzlehttp/guzzle:^7.0
สร้างไคลเอ็นต์ HTTP ของ Guzzle โดยกำหนดค่าระยะหมดเวลา
$httpClient = new \GuzzleHttp\Client(['timeout' => http-timeout-in-seconds]);
สร้างไคลเอ็นต์ Google และกำหนดไคลเอ็นต์ HTTP ของ Guzzle
$client = new Google_Client(); $client->setHttpClient($httpClient);
จัดการข้อผิดพลาดการหมดเวลาของ API
ในบางกรณีที่เกิดขึ้นไม่บ่อยนัก คำขอที่ดำเนินการที่ซับซ้อนอาจเกิน
หมดเวลาฝั่งเซิร์ฟเวอร์ 180 วินาที ทำให้ API แสดงผล 408
หรือ 504
การตอบกลับข้อผิดพลาด
หากคำขอตอบกลับด้วยรหัสข้อผิดพลาดเหล่านี้ เราขอแนะนำให้คุณ ลองส่งคำขอเหล่านี้อีกครั้งโดยใช้กลยุทธ์ Exponential Backoff
หากข้อผิดพลาดยังคงอยู่ โปรดติดต่อทีมสนับสนุนโดยใช้แบบฟอร์มติดต่อ