0

当我从 Helidon MP Main Program 运行以下代码时,这适用于所有同时上传,但是当我从 Test 运行代码时,我需要等待一些类似 threadSleep(time) 的东西,然后服务器停止以其他方式上传所有文件上传几个文件。你能帮忙吗

ObjectStorageAsync client = new ObjectStorageAsyncClient(provider).getClient();
    client.putObject(putObjectRequest, putObjectHandler);
    PutObjectResponse response = putObjectHandler.waitForCompletion();
4

1 回答 1

1

这个问题似乎只涉及 Oracle 对象存储 API,与 Helidon 无关。

我还注意到putObject' 的第二个参数是 an AsyncHandler,它似乎没有waitForCompletion()您上面引用的方法。

最后,我注意到该putObject方法返回Future您没有使用的 a (如果您提供的是 ,从文档中看起来是正确的AsyncHandler)。null在您的情况下,也许将其作为第二个参数提供给putObject,并调用get()返回的参数可能更有意义Future,这将阻塞直到计算完成?(这当然会使您正在做的事情的异步性质有些无关紧要,但这似乎是您想要做的事情。)

最后,如果您必须阻塞直到一切都完成,那么您可能根本不想使用异步 API,而是对同步 API更感兴趣。

于 2019-12-02T18:47:39.267 回答