API'ye yapılan birkaç çağrı uzun süreli işlemleri döndürür. Bunlar, engelleyici bir RPC'ye sahip olmak istenmediği gibi uzun süre yürütülen bir işin durumunu izler.
Gelecekteki Operasyon sınıfı
LRO'larla etkileşim kurmanın en belirgin yolu OperationFuture
sınıfıdır. Bunu kullanıyorsanız hizmet istemcisinin silinmediğinden emin olun.
Önerilmeyen:
private void doSomething() {
OperationFuture<Empty, Empty> future = startLongRunningOperation(jobName);
future.get();
}
private OperationFuture<Empty, Empty> startLongRunningOperation(String jobToStart)
throws UnsupportedEncodingException {
try (OfflineUserDataJobServiceClient offlineUserDataJobServiceClient =
googleAdsClient.getLatestVersion().createOfflineUserDataJobServiceClient()) {
// Issues an asynchronous request to run the offline user data job for executing
// all added operations.
return offlineUserDataJobServiceClient.runOfflineUserDataJobAsync(jobToStart);
}
}
Önerilen:
private void doSomethingElse() {
try (OfflineUserDataJobServiceClient offlineUserDataJobServiceClient =
googleAdsClient.getLatestVersion().createOfflineUserDataJobServiceClient()) {
OperationFuture<Empty, Empty> future = startLongRunningOperation(offlineUserDataJobServiceClient, jobName);
future.get();
}
}
private OperationFuture<Empty, Empty> startLongRunningOperation(String jobToStart)
throws UnsupportedEncodingException {
offlineUserDataJobServiceClient.runOfflineUserDataJobAsync(jobToStart);
}
OperationFuture
sınıfının yalnızca OfflineUserDataJobServiceClient
kapsam dahilindeyken nasıl kullanıldığına dikkat edin.