PHP - 如果没有结果,请等待并重试
PHP - If no results, wait and try again
我正在通过 GET 协议调用 Web 服务,响应将在页面上回显为 true 或 false。
我正在尝试编写在 Web 服务 returns 错误时重试最多 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));
}
}
}
只需使用一个数组和一个循环来进行任意次数的迭代和任意暂停时间
$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;
}
这就是在@Pavel Lint 为我激发了这个想法后我得到的结果:
$i = 0;
$waitTimes = array();
$waitTimes = [1, 10, 30]
while ($wsReturn == 'false') {
sleep( $waitTimes[$i] );
$wsReturn = strip_tags(file_get_contents($link));
$++i
if ($i >= count($waitTimes)-1) { break; }
}
我正在通过 GET 协议调用 Web 服务,响应将在页面上回显为 true 或 false。
我正在尝试编写在 Web 服务 returns 错误时重试最多 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));
}
}
}
只需使用一个数组和一个循环来进行任意次数的迭代和任意暂停时间
$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;
}
这就是在@Pavel Lint 为我激发了这个想法后我得到的结果:
$i = 0;
$waitTimes = array();
$waitTimes = [1, 10, 30]
while ($wsReturn == 'false') {
sleep( $waitTimes[$i] );
$wsReturn = strip_tags(file_get_contents($link));
$++i
if ($i >= count($waitTimes)-1) { break; }
}