PHP-如果没有结果,请等待并重试

2022-05-23 00:00:00 sleep php

我正在通过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));
                }
        }
}

解决方案

只需使用一个数组和一个循环即可在任意暂停时间内进行任意次数的迭代

$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;
} 

相关文章