Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Erstellung eines Singleton-Hintergrundprozesses in PHP

Einführung in die Erstellung eines Singleton-Hintergrundprozesses in PHP

巴扎黑
巴扎黑Original
2017-08-13 11:30:591011Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum Erstellen eines einzelnen Hintergrundprozesses in PHP vorgestellt, einschließlich der mit PHP verbundenen Betriebstechniken zum Starten, Erstellen, Beurteilen, Stoppen und anderen Prozessen. Freunde in Not können sich auf Folgendes beziehen:

Dies Der Artikel erläutert anhand von Beispielen die Methode zum Erstellen eines Singleton-Hintergrundprozesses in PHP. Teilen Sie es wie folgt mit allen als Referenz:

Sie können einen PHP-Hintergrundprozess durch die folgende Anweisung starten:


$command = " php script.php ";
$pid = exec("nohup $command > /dev/null 2>&1 & echo $!");

nohup bedeutet das Dieser Prozess ist unabhängig vom erstellten Benutzer und kann im Daemon-Modus ausgeführt werden.

Wenn dieser Hintergrundprozess als einzelne Instanz ausgeführt werden soll, können Sie die folgende Methode verwenden, um aufzuzeichnen/beurteilen, ob der Prozess ausgeführt wird


//query the database for process id
$query = "SELECT pid FROM `daemons` WHERE `pid` = '2013' LIMIT 1";
$result = mysql_query($query);
$pid = mysql_result($result, 0, 'pid');
//check if the process is running
exec("ps $pid", $pState);
if((count($pState) >= 2) && !empty($pid))
{
echo "RUNNING";
}
else
{
echo "INACTIVE";
}

Sie können die PID auch in eine Datei schreiben, aber wenn Sie sich in einer Umgebung mit verteilten Aufgaben befinden, ist es besser, sie in der Datenbank abzulegen

Stoppen Sie einen Hintergrundprozess:


//check if the process from the database is running
exec("ps $pid", $pState);
if((count($pState) >= 2))
{
//if the process is running, kill it
exec("kill $pid");
//update database row with an empty process id
}

Das obige ist der detaillierte Inhalt vonEinführung in die Erstellung eines Singleton-Hintergrundprozesses 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