我通过GET协议调用Web服务,响应将在页面上回显为true或false。
我尝试编写逻辑,如果Web服务返回false,将重试最多3次。但是,我第一次想要等待1秒,第二次想要等待10秒,第三次我要等待60秒。
这就是我现在拥有的。有没有更好的方法来实现这一目标?
if ($wsReturn == 'false') {
sleep(1);
$wsReturn = strip_tags(file_get_contents($link));
if ($wsReturn == 'false') {
sleep(10);
$wsReturn = strip_tags(file_get_contents($link));
if ($wsReturn == 'false') {
sleep(60);
$wsReturn = strip_tags(file_get_contents($link));
}
}
}
答案 0 :(得分:2)
只需使用数组和循环即可以任意暂停时间进行任意数量的迭代
$i = 0;
$sleep = [1, 10, 60];
while( $wsReturn == 'false' )
{
sleep( $sleep[$i] );
// your logic goes here
$wsReturn = strip_tags(file_get_contents($link));
if( ++$i >= count($sleep) )
break;
}