Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Dateien können auch alle paar Sekunden ausgeführt werden

PHP-Dateien können auch alle paar Sekunden ausgeführt werden

小云云
小云云Original
2017-11-11 11:50:043245Durchsuche

Wenn wir einen PHP-Code-Extraktor verwenden müssen, um die Datenbank zu bearbeiten und die Ergebnisse zu speichern. Wenn die Methode die Ausführung dieses Codes auslösen soll, wenn der Benutzer ihn anfordert, wird die Antwortzeit des Benutzers offensichtlich länger, was sich auf die Benutzererfahrung auswirkt! Wenn Sie die geplanten Aufgaben des Betriebssystems nutzen, ist die Ausführungsfrequenz ebenfalls sehr hoch.

Hier ist ein einfaches Beispiel:

<?php
ignore_user_abort();//关闭浏览器仍然执行
set_time_limit(0);//让程序一直执行下去
$interval=3;//每隔一定时间运行
do{
    $msg=date("Y-m-d H:i:s");
    file_put_contents("log.log",$msg,FILE_APPEND);//记录日志
    sleep($interval);//等待时间,进行下一次操作。
}while(true);
?>

Es ist zu beachten, dass das Programm keine Endurteilserklärung schreibt und eine Endlosschleife durchläuft. Wenn Sie es stoppen möchten, können Sie Apache natürlich neu starten. Nach dem Neustart ist es ungültig. Wenn Sie die geplante Ausführung erneut durchführen möchten, führen Sie diesen Code erneut aus.

Das obige einfache Beispiel kann dieses Prinzip veranschaulichen.

Für das obige Beispiel kann ich also einige Verbesserungen vornehmen.

Sie benötigen einen Schalter, um das Skript auszuführen. Sie können ihn implementieren, indem Sie während der while-Schleife einfach die Schaltervariable einbinden. Dann kann es so erreicht werden:

Erstellen Sie eine externe importierte Variablendatei switch.php mit folgendem Inhalt:

<?php
return 1;//1执行脚本 0退出执行脚本
?>
改良脚本如下:
<?php
    ignore_user_abort();//关闭浏览器后,继续执行php代码
    set_time_limit(0);//程序执行时间无限制
    $sleep_time = 5;//多长时间执行一次
    $switch = include &#39;switch.php&#39;;
    while($switch){
        $switch = include &#39;switch.php&#39;;
        $msg=date("Y-m-d H:i:s").$switch;
            file_put_contents("log.log",$msg,FILE_APPEND);//记录日志
        sleep($sleep_time);//等待时间,进行下一次操作。
    }
    exit();
    
?>

In der Vergangenheit wussten wir vielleicht nicht, warum der Server Ich würde lange antworten, aber anhand von zwei Beispielen Im Vergleich dazu wissen wir bereits, wie man PHP-Dateien implementiert, die alle paar Sekunden ausgeführt werden, und haben somit eine Lösung gefunden.

Verwandte Empfehlungen:

Zusammenfassung über PHP-Dateifunktionen

Zusammenfassung über PHP-Dateifunktionen und Verzeichnisfunktionen

Klasse zum Hochladen von PHP-Dateien teilen

Das obige ist der detaillierte Inhalt vonPHP-Dateien können auch alle paar Sekunden ausgeführt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn