Выполнение PHP-скрипта прекращается через 60 секунд - PullRequest
0 голосов
/ 05 апреля 2019

этот PHP-скрипт завершается через 60 секунд.

Я уже установил:

ini_set('max_execution_time', 0);

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

И хочу выполнить php, используя passthru или exec, и иметь рекурсивную функцию для проверкистатус в дБ:

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();  
        }
}

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

enter image description here

ОСТАНОВИТЬ ИСПОЛЬЗОВАНИЕ 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. Кроме того, вам следует изучить PHP Cron Job , который выполняется каждые 30 секунд.

0 голосов
/ 05 апреля 2019

Пожалуйста, попробуйте с приведенным ниже решением

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

Надеюсь, это поможет вам.

...