我写了个程序,调用其他网站的webservice,考虑到如网站关闭等导致对webservice资源调用失败,我想实现如下功能:
如果调用失败的话,过五分钟或者十分钟再调用一次,直到调用成功。
考虑了用线程的方法,但wait()至少要同时存在两个线程才能使用。且我的程序本来就是个单线程的东西,没必要引进多线程。
请问,还有其他的在主程序中用的类似于wait和sleep的方法吗?
急的要命,知道的麻烦伸下援助之手。
10 个解决方案
#1
boolean isContinue = true;
while(isContinue){
//调用逻辑及计算间隔逻辑,如果调用成功将isContinue置为false
}
//write some code
不知能否帮到LZ
#2
Thread.sleep不行?
#3
这个可以的,试过。
#4
失败重调:可以将调用webservice的方法写成静态的,通过递归实现。
使主程序等待:可以通过Thread.sleep方法实现。
使主程序等待:可以通过Thread.sleep方法实现。
#5
LZ 可以这样想嘛 ,写一个线程类, 开启这个线程类 ,这个线程类if判断下是否取到值, 没取到就睡眠5分钟、十分钟后,在把这个线程类new出来开启,就可以达到效果了撒
#6
LZ要的不就是个Timer么
#7
#8
你可以做一个循环吧
或者在里面做一个sleep(一段时间)
或者在里面做一个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
这个可以的,试过。
#4
失败重调:可以将调用webservice的方法写成静态的,通过递归实现。
使主程序等待:可以通过Thread.sleep方法实现。
使主程序等待:可以通过Thread.sleep方法实现。
#5
LZ 可以这样想嘛 ,写一个线程类, 开启这个线程类 ,这个线程类if判断下是否取到值, 没取到就睡眠5分钟、十分钟后,在把这个线程类new出来开启,就可以达到效果了撒
#6
LZ要的不就是个Timer么
#7
#8
你可以做一个循环吧
或者在里面做一个sleep(一段时间)
或者在里面做一个sleep(一段时间)
#9
定时器。。。
#10
while (true) {
if (invokeWebService())
break;
Thread.sleep(5 * 60 * 1000L);
}