Uzun süreli işlemler (LRO'lar)

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.