Java - Как ждать, пока uploadFileToBlockBlob закончится? - PullRequest
0 голосов
/ 28 мая 2019

Возникла проблема с sdk v10 Azure, когда я загружаю файлы, код продолжается, пока загрузка выполняется, но мне бы очень хотелось подождать, пока загрузка не закончится.

Я видел c #имеет функцию 'await', есть ли способ Java справиться с этим?

try{

    AsynchronousFileChannel fileChannel = AsynchronousFileChannel.open(file.toPath());

    TransferManager.uploadFileToBlockBlob(fileChannel, blob, 8*1024*1024, null, null)
        .subscribe( azureResponse -> {
        logger.info("Status code: " + azureResponse.response().statusCode());
        if( azureResponse.response().statusCode() != 201){
            logger.error("upload failed - " + azureResponse.response().body());
            // throw exception
        }
    });
} catch( Exception e ) {
  // handle the exception
}

1 Ответ

0 голосов
/ 28 мая 2019

Я не знаком с Azure, в частности, но, возможно, вы можете написать цикл while, который блокирует выполнение потока до завершения процесса загрузки. Что-то такое простое, как это, должно сработать, если у вас есть отдельный логический метод, который возвращает true после завершения загрузки файла:

while(!hasFileUploaded()) 
{
    // do nothing here
}

Прошу прощения, если этот ответ кажется несколько общим, но без дополнительных сведений о том, как и где загружается файл, я не могу сказать вам точно, как проверить процесс загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...