function dishVideoConversionQiniu(){
//防止执行超时
set_time_limit(0);
while (true) {
$videoList = $videoModel->getToQiniuUploadList(50, $lastVideoID);
if (empty($videoList)) {
videoLog::log("dishVideo result is empty, quit");
sleep(5);
continue;
}
}
}
我在linux定时任务每分钟执行一次,上面的程序可否实现永远执行呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
会有问题,会不停的起新的进程,然后每个进程都无线循环下去
不考虑其他的情况确实是可以一直执行下去, 如果考虑其他的情况, 比如你这写文件的磁盘慢了, 服务器宕机了,,,,,,就不好说了
楼上说的对 要考虑服务器运行状态和脚本的运行状态 你可以写个shell脚本监控这个PHP脚本的运行状态 如果PHP脚本运行异常 可以重启脚本然后给你发个邮件提醒 等
如果是在 Linux 环境下,可以考虑使用守护进程,启动进程后 fork 出子进程后,关闭父进程就可以守护运行(当然这是简单说法,实际还有操作,可参考 《UNIX 环境高级编程》中关于守护进程的说明),可利用 PHP 进程扩展 pcntl 实现。
当然,更推荐使用 Swoole,毕竟更优雅而且简单,无论是进程控制、定时器等等,都可以的哦~