PHP Sleep() - 循环短暂睡眠有什么问题吗?

时间:2014-08-29 19:33:04

标签: php performance loops sleep

我正在构建一个使用Bing Ads API的应用程序。在API中,为了获取您的帐户/广告系列/等的报告,您必须先向Microsoft的服务器发出报告请求,然后才能从其服务器下载报告。

要执行此操作,一旦发出报告请求,您必须反复轮询其服务器,直到获得成功/失败的响应。

代码看起来像这样:

// Defined wait time to check for download.
$standbyTime         = 30;
$reportRequestStatus = null;

// Loop and standby until Bing Ads generates the report and signals its status.
for ($i = 0; $i < $standbyTime; $i++) {

     // Standby.
     sleep(1);

     // Check for the status of the report.
     // Continue when the report status is signalled.
     $reportRequestStatus = $this->_pollGenerateReport($proxy, $reportRequestId);
     if ($reportRequestStatus->Status === \BingAds\Reporting\ReportRequestStatusType::Success
         || $reportRequestStatus->Status === \BingAds\Reporting\ReportRequestStatusType::Error
     ) {
         break; // If report is successful or failed.
       }
}

现在我知道微软可能存在这方面的问题,并且不清楚他们的服务器是否存在查询限制。

忽略我正在轮询的服务器,使用这样的循环有什么后果?示例代码每30秒轮询一次服务器的状态。然而,在生产中,这对于我想要使用它的速度来说太慢了。

这样的循环是否存在严重的内存/ CPU性能问题?

提前致谢。

0 个答案:

没有答案