Heim > Artikel > Backend-Entwicklung > So erstellen Sie einen Singleton-Hintergrundprozess in PHP
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 }
PHPEinzelinstanzDetaillierte Erklärung zur Verwendung des Musters
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!