Heim > Artikel > Backend-Entwicklung > Geplante PHP-Aufgaben
(1) Das Programm muss nur einmal gestartet werden, nachdem die geplanten Aufgaben festgelegt wurden, und dann läuft das Programm weiter, bis der Server neu gestartet wird.
(2) Wenn es wiederholt ausgeführt wird, ist dies möglicherweise nicht der Fall Ergebnis, das Sie möchten, und es wird mehrmals die gleiche geplante Aufgabe gestartet
(3) Wenn jede Seite diese Seite enthält, werden mehrere dauerhaft laufende Programme gestartet, die unnötige Systemressourcen verbrauchen
und auch den normalen Zugriff beeinträchtigen der Seite. Wenn ja, befindet sich die Seite beim Zugriff immer im Wartezustand (das ist eine Endlosschleife)
ignore_user_abort(true); //Auch wenn Wenn der Client nicht verbunden ist (z. B. Schließen des Browsers), kann die Ausführung des PHP-Skripts auch fortgesetzt werden.
set_time_limit(0); Die Standardausführungszeit von PHP beträgt 30 Sekunden. 0) kann das Programm unbegrenzt ausgeführt werden
$interval=60 *5; //Alle 5 Minuten ausführen
$f = 'lock.txt';
if(file_exists($f)) { //Beurteilen Sie, ob die markierte Datei vorhanden ist, und beenden Sie sie, wenn sie vorhanden ist, um eine wiederholte Ausführung zu verhindern
exit();
}
do{
if(@get_file_contents($f) == 'stop '){ //Legen Sie die Stoppbedingung fest. Schreiben Sie beim Stoppen einfach stop in lock.txt
break;
}
@file_put_contents($f,'run');//Schreiben Sie wiederholt eine Datei in Markieren Sie, dass die geplante Aufgabe ausgeführt wurde
....lassen Sie den Aufgabencode weg
sleep ($interval);//Das Programm pausiert für 5 Minuten
}while(true);
@unlock ($f); //Markierte Datei löschen
?>
Dies ist nur eine Möglichkeit, es mit Code zu implementieren. Eine andere Möglichkeit besteht darin, geplante Aufgaben im PHP-CLI-Modus zu implementieren 🎜>
, z. B. unter Windows ausführen -> cmd , um php.exe auszuführen, und dann einfach AT drücken und entsprechend den Anforderungen eingeben Anders Systeme haben unterschiedliche Methoden und Linux ist anders. Es wurde zwar nicht konkret umgesetzt, ist aber durchaus möglich