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.