Heim  >  Artikel  >  Backend-Entwicklung  >  Wie implementiert man geplante Aufgaben in PHP?

Wie implementiert man geplante Aufgaben in PHP?

黄舟
黄舟Original
2017-11-14 09:46:1724861Durchsuche

Wir haben Ihnen das Implementierungsprinzip von PHP-geplanten Aufgaben in unserem vorherigen Artikel vorgestellt. Ich glaube, dass jeder das Prinzip von PHP-geplanten Aufgaben versteht, deshalb werden wir Ihnen heute weiterhin PHP-Anleitungen vorstellen Geplante Aufgaben umsetzen!

Kursempfehlung: „PHP Online-Schulungskurs

1. Windows-Planaufgaben

1. Schreiben Sie ein PHP-Programm mit dem Namen test.php und dem folgenden Inhalt:


<?   
    $fp = fopen("test.txt", "a+");   
    fwrite($fp, date("Y-m-d H:i:s") . " 成功成功了!\n");   
    fclose($fp);   
?>

Schreiben Sie das Programm mutig, Sie können jedes beliebige includerequire verwenden, kein Problem

2. Erstellen Sie eine neue Bat-Datei mit dem Namen test.bat. Der Inhalt lautet wie folgt:


D:\php\php.exe -q D:\website\test.php

3. Erstellen Sie geplante WINDOWS-Aufgaben:

Start–>Systemsteuerung–>Aufgabenplan–>Aufgabenplan hinzufügen

Durchsuchen Wählen Sie die bat-Datei oben im Ordner aus

Legen Sie die Uhrzeit und das Passwort fest (Anmeldung bei WINDOWS)

Speichern Sie sie.

4. Sie können mit der rechten Maustaste auf die geplante Aufgabe klicken und auf „Ausführen“ klicken.

2. In ist die Verwendung von PHP zum Ausführen von Skripten

genauso wie der Aufruf eines gewöhnlichen Shell-Skripts in Crontab (spezifische Crontab-Verwendung), wobei ein PHP-Programm zum Aufrufen von PHP-Skripten verwendet wird. Crontab

wird

stündlich wie folgt ausgeführt:

myscript.php


# crontab -e  
00 * * * * /usr/local/bin/php /home/john/myscript.php

für PHP Der Pfad des Programms.

/usr/local/bin/php2. Verwenden Sie eine URL, um Skripte in Crontab auszuführen.

Wenn Ihr PHP-Skript per URL ausgelöst werden kann, können Sie lynx oder curl oder wget verwenden, um Ihr Crontab zu konfigurieren.

Das folgende Beispiel verwendet den Lynx-Textbrowser, um auf eine URL zuzugreifen, um stündlich ein PHP-Skript auszuführen. Der Lynx-Textbrowser verwendet standardmäßig den Konversationsmodus zum Öffnen von URLs. Wie unten gezeigt, verwende ich jedoch die Option

in der Lynx-Befehlszeile, um die URL-Ausgabe in die Standardausgabe umzuwandeln.

-dump


00 * * * * lynx -dump http:
//www.centos.bz/myscript.php

Im folgenden Beispiel wird mit CURL auf die URL zugegriffen, um alle 5 Minuten ein PHP-Skript auszuführen. Curl zeigt die Ausgabe standardmäßig auf der Standardausgabe an. Sie können die Ausgabe des Skripts auch mit der Option „curl -o“ in eine temporäre Datei sichern.


Das folgende Beispiel verwendet WGET, um alle 10 Minuten auf die URL zuzugreifen, um ein PHP-Skript auszuführen. Die Option -q gibt den Ruhemodus an. „-O temp.txt“ bedeutet, dass die Ausgabe an eine temporäre Datei gesendet wird

*/5 * * * * /usr/bin/curl -o temp.txt http:
//www.centos.bz/myscript.php


3. PHP implementiert die geplante Ausführung geplanter Aufgaben
*/10 * * * * /usr/bin/wget -q -O temp.txt http:
//www.centos.bz/myscript.php

🎜 Zeit (nicht empfohlen)

2. Wenn der Client-Browser geschlossen wird, kann es sein, dass das Programm beendet wird. Lösung:

Auch wenn die Seite geschlossen ist, wird sie trotzdem ausgeführt Normalerweise

30m 3. Wenn das Programm ständig ausgeführt wird, verbraucht es wahrscheinlich viele Ressourcen. Die Lösung besteht darin, das Programm für eine Weile in den Ruhezustand zu versetzen und es dann auszuführen der geplante PHP-Ausführungscode set_time_limit();max_execution_time

ignore_user_abortBeim Testen haben wir festgestellt, dass diese Effizienz nicht sehr hoch ist

Zusammenfassung: sleep


Dieser Artikel wird durch geplante Windows-Aufgaben, Linux-Skripte und Beispiele für die Ausführung geplanter PHP-Aufgaben implementiert, damit Freunde die geplante Ausführung von PHP-Aufgaben besser verstehen können. Ich hoffe, dass er für Sie hilfreich ist!

<?php   
    ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.   
    set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去   
     $interval=5;// 每隔5s运行   
    
     //方法1--死循环   
     do{   
        echo &#39;测试&#39;.time().&#39;<br/>&#39;;    
        sleep($interval);// 等待5s       
    }while(true);   
    
    //方法2---sleep 定时执行   
     require_once &#39;./curlClass.php&#39;;//引入文件   
        
     $curl = new httpCurl();//实例化   
     $stime = $curl->getmicrotime();   
    for($i=0;$i<=10;$i++){   
            
        echo &#39;测试&#39;.time().&#39;<br/>&#39;;    
        sleep($interval);// 等待5s   
            
    }   
    ob_flush();   
    flush();   
    $etime = $curl->getmicrotime();   
    echo &#39;<hr>&#39;;   
    echo round(($etime-stime),4);//程序执行时间

Verwandte Empfehlungen:

Prinzipielle Analyse der PHP-Implementierung geplanter Aufgaben


PHP-geplante Aufgaben und kontinuierliche Prozesse (fsockopen) Instanz

php geplante Aufgabe Benutzerverbindungsstatus erkennen

Das obige ist der detaillierte Inhalt vonWie implementiert man geplante Aufgaben in PHP?. 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