我正在构建一个使用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性能问题?
提前致谢。