Heim  >  Artikel  >  Backend-Entwicklung  >  Geplante PHP-Aufgaben

Geplante PHP-Aufgaben

巴扎黑
巴扎黑Original
2016-11-23 11:23:411060Durchsuche

PHP ist eine schwach typisierte interpretierte Sprache, die nicht über das Konzept von AppServer verfügt, wie z. B. Java und .Net. Das HTTP-Protokoll kann nur vom Benutzer ausgelöst und aufgerufen werden Nach dem Aufruf wird der Speicher automatisch verlassen. Ohne residenten Speicher gibt es keine Möglichkeit, den Vorgang genau zu timen.


Wenn Sie PHP verwenden müssen, um bestimmte Aufgaben regelmäßig auszuführen, stehen Ihnen die folgenden Methoden zur Verfügung:
1. Crontab unter Linux, geplante Aufgaben unter Windows
2. set_time_limit(0) ;
Ignore_user_abort(true);
Endlosschleife

Erster Typ: PHP-Dateien, die regelmäßig von crontab ausgeführt werden, benötigen im Allgemeinen eine Tabelle, um den Namen jeder Aufgabe und die aufzuzeichnen aktuelle Prozess-ID, Aktualisierungszeit und Prozessstart-ID und andere Informationen. Der Stapelverarbeitungsprozess umfasst: Vorbereitung, Ausführung und Nachbearbeitung. Der gesamte Verarbeitungsprozess kann OO-Ideen verwenden, um eine Stapelverarbeitungs-Basisklasse zu kapseln, um die Datenverarbeitung zu implementieren.

Die zweite Methode: Auslösen der Ausführung durch Zugriff auf diese Datei. Nach dem Neustart des Apache-Servers oder des Neustarts des Computers (Windows-Umgebung) besteht ein Problem mit der Beendigung. Ein Beispiel lautet wie folgt:

ignore_user_abort(true);  // 设置关闭浏览器后也可执行
set_time_limit(0);  // 设置相应时间无限制,原默认30s
function write_txt()
{
$filename = 'test.txt';
if (!file_exists($filename))
{
$fp = fopen($filename, 'w');
fclose($fp);
}
$fp = fopen($filename, 'r+');
$str = file_get_contents($filename);
$str .= date('Y-m-d H:i:s')."\r\n";
fwrite($fp, $str);
fclose($fp);
}
function do_cron()
{
write_txt();
sleep(30);
}
while (1)
{
do_cron();
}

Connection_aborted() – Prüft, ob die Verbindung zum Client getrennt wurde und gibt 1 zurück, andernfalls wird 0 zurückgegeben
Connection_status – Gibt das Statusbit der Verbindung zurück 0 – NORMAL (normal ); 1 – ABORTED (abnormaler Ausgang); 2 – TIMEOUT (Zeitüberschreitung)

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
Vorheriger Artikel:PHP-BesucherzählerNächster Artikel:PHP-Besucherzähler