private CompletableFuture scheduleUploadWithDelay()

in import/src/main/java/com/google/cloud/healthcare/imaging/dicomadapter/cstore/backup/BackupUploadService.java [237:253]


  private CompletableFuture scheduleUploadWithDelay(BackupState backupState, Runnable uploadJob, long delayMillis) throws BackupException {
    String uniqueFileName = backupState.getUniqueFileName();
    log.info("Trying to send data, fileName={}, attempt № {}. ",
        uniqueFileName,
        2 + attemptsAmount - backupState.getAttemptsCountdown());
    if (backupState.decrement()) {
      return CompletableFuture.runAsync(
          uploadJob,
          CompletableFuture.delayedExecutor(
            delayMillis,
            TimeUnit.MILLISECONDS,
            uploadThreadPool));
    } else {
      MonitoringService.addEvent(Event.CSTORE_ERROR);
      throw getNoResendAttemptLeftException(null, uniqueFileName);
    }
  }