如果我们需要一个脚本持续的运行,那么我们就要通过php长连接的方式,来达到运行目的。

通过 set_time_limit 来设置一个脚本的执行时间为无限长;然后使用flush()和 ob_flush() 来清除服务器缓冲区,随时输出脚本的返回值。

如下面这段脚本:

<?php
header("Content-Type: text/plain");
set_time_limit(0);
$infoString = "Hello World" . "\n";
while( isset($infoString) )
{
  echo $infoString;
  flush();
  ob_flush();
  sleep(5);
}
?>

当我们执行后,每隔5秒钟,我们会得到一行 Hello World ,如果不按停止按钮,浏览器会不停的一行一行继续加载。

通过这一方法,我们可以完成很多功能,例如机器人爬虫、即时留言板等程序。如果要停止运行只能重启php-fpm:查看php-fpm进程数:

ps aux | grep -c php-fpm

查看运行内存

/usr/bin/php -i|grep mem

重启php-fpm

/etc/init.d/php-fpm restart

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
  • 2022-12-23
  • 2021-12-25
  • 2021-12-29
猜你喜欢
  • 2021-11-17
  • 2021-12-06
  • 2022-12-23
  • 2021-11-12
  • 2022-01-19
  • 2021-06-26
相关资源
相似解决方案