我的任务很简单,就是使用硒从url下载文件。我一直做到点击下载部分。现在我要等到文件下载完毕。我使用关注并完成。
do {
Thread.sleep(60000);
}
while ((downloadeBuild.length()/1024) < 138900);
现在的挑战是我要等待多少时间?我可以设定一些门槛吗?我能想到的是在使用计数器时检查计数器是否达到10或类似的值?但是用Java还有其他方法吗?因此,在下载文件之前,我没有任何动作。
答案 0 :(得分:4)
怎么样?
我认为使用TimeOut
不稳定,因为不需要等待不可预测的下载操作。
您可以使用CompletableFuture
转到supplyAsync
进行下载,并使用thenApply
进行处理/转换并通过{{ 1}},如下所示:
join
答案 1 :(得分:2)
您可以使用guava Stopwatch
Stopwatch stopwatch = Stopwatch.createStarted();
while ((downloadeBuild.length()/1024) < 138900 && topWatch.elapsed(TimeUnit.SECONDS) < 60);
答案 2 :(得分:0)
如果您想要的是超时练习,可以尝试以下代码:
long timeout = 10 * 60 * 1000;
long start = System.currentTimeMillis();
while(System.currentTimeMillis() - timeout <= start ){
//Not timeout yet, wait
}
//Time out, continue
在Java库中很常见。