-3

这个 PHP 脚本在 60 秒后终止。

我已经设置了:

ini_set('max_execution_time', 0);

ini_set('memory_limit','1024M');

并希望使用passthru或执行 php,并具有递归函数来检查数据库中的状态:

function checkstatus() {
    $check_status = mysql_fetch_array(mysql_query("select * from table where status='1'",$con));

    $status=$check_status["status"];

    if ($status !== "1") {
            passthru("/usr/bin/php  abc.php");
            die();

        } else {
            sleep(30);  
            checkstatus();  
        }
}
4

2 回答 2

1

在此处输入图像描述

停止使用MYSQL_函数。它们已被弃用并已从现代 PHP 版本中删除!!


Status是 MySQL 关键字,因此理想情况下应封装在反引号中。


$check_status = mysqli_fetch_array(
                mysqli_query($con,"select * FROM table WHERE `status`='1'")
                );

您只是在检查where status='1'. 因此if ($status !== "1") {永远false

因此,每次运行此脚本时,您将始终睡眠 30 秒。这是对服务器资源的无限浪费。


问题回答:

要停止达到时间限制,请将此代码添加到脚本的顶部:

set_time_limit(0); // set no limit.

然而,

看看你的脚本的形状,它看起来很糟糕;你不想让 PHP 一直挂在sleep语句上。Intead 您应该考虑使用每 30 秒执行一次的PHP Cron 作业。

于 2019-04-05T12:32:00.377 回答
0

请尝试以下解决方案

set_time_limit(0); 
ignore_user_abort(true);
ini_set('max_execution_time', 0);

我希望它会帮助你。

于 2019-04-05T10:33:29.397 回答