Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie einen Singleton-Hintergrundprozess in PHP

So erstellen Sie einen Singleton-Hintergrundprozess in PHP

墨辰丷
墨辰丷Original
2018-05-22 11:35:151389Durchsuche

Dieser Artikel stellt hauptsächlich die Methode zum Erstellen eines einzelnen Hintergrundprozesses in PHP vor und umfasst die mit PHP verbundenen Betriebstechniken zum Starten, Erstellen, Beurteilen, Stoppen usw. Freunde in Not können sich auf

wie folgt beziehen:

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, dass dieser Prozess unabhängig vom erstellten Benutzer ist und kann im Daemon-Modus ausführen.

Wenn dieser Hintergrundprozess als Singleton 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 die Datenbank zu legen

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
}

Verwandte Empfehlungen:

PHPEinzelinstanzDetaillierte Erklärung zur Verwendung des Musters

PHP implementierte die Redis-Auswahlfunktion für mehrere Bibliotheken Singleton Klasse (ausführliche Erklärung)

PHP-Implementierung von mongoDB Singleton Detaillierte Erläuterung der Schritte der Modusbetriebsklasse

Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen Singleton-Hintergrundprozess 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