Długotrwałe operacje (LRO)

Kilka wywołań interfejsu API zwraca długotrwałe operacje. które śledzą stan zadania, które jest wykonywane przez dłuższy czas, np. jest niepożądane.

Klasa operacji przyszłej

Najbardziej typowy sposób interakcji z pozostałymi osobami to OperationFuture. Jeśli użyjesz tego rozwiązania, upewnij się, że klient usługi nie został zniszczony.

Niezalecane:

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);   } } 

Zalecane:

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); } 

Zwróć uwagę, że klasa OperationFuture jest używana tylko wtedy, gdy OfflineUserDataJobServiceClient jest w zakresie.