দীর্ঘমেয়াদী অপারেশন (LROs)

API-তে বেশ কিছু কল দীর্ঘ-চলমান ক্রিয়াকলাপ ফিরিয়ে দেয়। এগুলি একটি কাজের স্থিতি ট্র্যাক করে যা একটি বর্ধিত সময়ের জন্য কার্যকর হয়, যেমন একটি ব্লকিং RPC থাকা কাম্য নয়।

অপারেশন ফিউচার ক্লাস

LRO-এর সাথে যোগাযোগ করার সবচেয়ে সুস্পষ্ট উপায় হল OperationFuture ক্লাস। আপনি যদি এটি ব্যবহার করেন তবে নিশ্চিত করুন যে পরিষেবা ক্লায়েন্টটি ধ্বংস না হয়েছে।

প্রস্তাবিত নয়:

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

প্রস্তাবিত:

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

OfflineUserDataJobServiceClient সুযোগে থাকাকালীন OperationFuture ক্লাসটি কীভাবে ব্যবহার করা হয় তা লক্ষ্য করুন।