การเรียก Google Ads API หลายรายการจะแสดงผลการดำเนินการที่ใช้เวลานาน (LRO) ซึ่งจะติดตามสถานะของงานที่ดำเนินการเป็นระยะเวลานานโดยไม่ต้องมีการบล็อก RPC เพียงครั้งเดียว
คลาส OperationFuture
คุณโต้ตอบกับ LRO ในไลบรารีของไคลเอ็นต์ Java โดยใช้คลาส
OperationFuture เนื่องจาก OperationFuture อาศัยไคลเอ็นต์บริการเบื้องหลังในการสำรวจความคิดเห็น API เพื่อดูการอัปเดตสถานะ โปรดตรวจสอบว่าไคลเอ็นต์บริการยังคงเปิดและใช้งานอยู่จนกว่าการดำเนินการจะเสร็จสมบูรณ์
ไม่แนะนำ:
private void executeOperation(String jobName) throws Exception {
OperationFuture<Empty, OfflineUserDataJobMetadata> future =
startLongRunningOperation(jobName);
// FAILS: The service client was already closed when
// startLongRunningOperation() exited its try-with-resources block, so
// future.get() fails when polling.
future.get();
}
private OperationFuture<Empty, OfflineUserDataJobMetadata>
startLongRunningOperation(String jobToStart) {
try (OfflineUserDataJobServiceClient offlineUserDataJobServiceClient =
googleAdsClient
.getLatestVersion()
.createOfflineUserDataJobServiceClient()) {
// Issues an asynchronous request to run the offline user data job.
return offlineUserDataJobServiceClient.runOfflineUserDataJobAsync(
jobToStart);
}
}
ข้อมูลที่แนะนำ
private void executeOperation(String jobName) throws Exception {
try (OfflineUserDataJobServiceClient offlineUserDataJobServiceClient =
googleAdsClient
.getLatestVersion()
.createOfflineUserDataJobServiceClient()) {
OperationFuture<Empty, OfflineUserDataJobMetadata> future =
startLongRunningOperation(offlineUserDataJobServiceClient, jobName);
// Waits for the operation to complete (with a timeout) while the client is
// still open.
future.get(5, TimeUnit.MINUTES);
}
}
private OperationFuture<Empty, OfflineUserDataJobMetadata>
startLongRunningOperation(
OfflineUserDataJobServiceClient offlineUserDataJobServiceClient,
String jobToStart) {
return offlineUserDataJobServiceClient.runOfflineUserDataJobAsync(jobToStart);
}
โปรดสังเกตว่าระบบจะใช้ OperationFuture เฉพาะในขณะที่ OfflineUserDataJobServiceClient ยังคงเปิดอยู่ภายในบล็อก try-with-resources