我写了一个脚本,从数据库中导出数据,然后把它放到 XML 文件中。脚本在具有正确 break 语句的无限 while 循环中工作(任务完成后)。任务需要 10 分钟。当我发出 http 请求以开始工作时,我正在使用的浏览器完全冻结 - 不仅是请求的 URL,而且是整个主机。在使用其他浏览器的同时,我可以浏览包含我的脚本的网页。
我的 PHP 脚本片段:
while(true)
{
if($i === $z)
{
break;
}
foreach((array)$this->project as $project)
{
makeYourJob();
usleep(1000000);
$z++;
}
usleep(2000000);
}
使用此 jquery 代码调用脚本(我键入包含此代码的 HTML 页面的地址):
$.get("cron.php");
我也尝试在 URL 栏中输入 cron.php 并且浏览器也挂断了。为什么运行脚本的浏览器会冻结?如何避免这种情况?
编辑:通过 ajax 或用户发出简单的 get/post 请求不会解决问题。这篇文章不是重复的。这是一个解决方案:
exec("wget http://www.domain.com/scrip_name.php > /dev/null &");