java程序执行中等待一段时间的问题

时间:2020-12-12 15:25:36
大家好:
    我写了个程序,调用其他网站的webservice,考虑到如网站关闭等导致对webservice资源调用失败,我想实现如下功能:
  如果调用失败的话,过五分钟或者十分钟再调用一次,直到调用成功。
  考虑了用线程的方法,但wait()至少要同时存在两个线程才能使用。且我的程序本来就是个单线程的东西,没必要引进多线程。
  请问,还有其他的在主程序中用的类似于wait和sleep的方法吗?
  急的要命,知道的麻烦伸下援助之手。

10 个解决方案

#1



boolean isContinue = true;
while(isContinue){
    //调用逻辑及计算间隔逻辑,如果调用成功将isContinue置为false
}
//write some code

不知能否帮到LZ

#2


Thread.sleep不行?

#3


引用 2 楼  的回复:
Thread.sleep不行?


这个可以的,试过。

#4


失败重调:可以将调用webservice的方法写成静态的,通过递归实现。
使主程序等待:可以通过Thread.sleep方法实现。

#5


LZ  可以这样想嘛 ,写一个线程类, 开启这个线程类 ,这个线程类if判断下是否取到值, 没取到就睡眠5分钟、十分钟后,在把这个线程类new出来开启,就可以达到效果了撒 

#6


LZ要的不就是个Timer么

#7


该回复于2012-06-09 12:33:18被版主删除

#8


你可以做一个循环吧
或者在里面做一个sleep(一段时间)

#9


定时器。。。

#10



while (true) {
if (invokeWebService())
break;
Thread.sleep(5 * 60 * 1000L);
}

#1



boolean isContinue = true;
while(isContinue){
    //调用逻辑及计算间隔逻辑,如果调用成功将isContinue置为false
}
//write some code

不知能否帮到LZ

#2


Thread.sleep不行?

#3


引用 2 楼  的回复:
Thread.sleep不行?


这个可以的,试过。

#4


失败重调:可以将调用webservice的方法写成静态的,通过递归实现。
使主程序等待:可以通过Thread.sleep方法实现。

#5


LZ  可以这样想嘛 ,写一个线程类, 开启这个线程类 ,这个线程类if判断下是否取到值, 没取到就睡眠5分钟、十分钟后,在把这个线程类new出来开启,就可以达到效果了撒 

#6


LZ要的不就是个Timer么

#7


该回复于2012-06-09 12:33:18被版主删除

#8


你可以做一个循环吧
或者在里面做一个sleep(一段时间)

#9


定时器。。。

#10



while (true) {
if (invokeWebService())
break;
Thread.sleep(5 * 60 * 1000L);
}