Maison >développement back-end >tutoriel php >Comment puis-je exécuter des processus PHP chronophages en arrière-plan sans bloquer l'utilisateur ?
Exécuter des processus en arrière-plan en PHP
Exécuter des processus fastidieux, tels que la copie de répertoires, sans bloquer l'expérience utilisateur peut être un défi. Cet article présente une solution qui permet à de telles tâches de s'exécuter en arrière-plan.
Exécution du processus en arrière-plan
Pour lancer une copie de répertoire sans interruption de l'utilisateur, envisagez les étapes suivantes :
Utilisez exec() pour lancer la commande :
Employez exec pour lancer la commande de copie, rediriger la sortie vers un fichier ($outputfile) et ajouter l'ID de processus à un autre fichier ($pidfile). Cela garantit une surveillance continue.
exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfile, $pidfile));
Surveiller l'état du processus :
Implémentez la fonction isRunning pour suivre l'état du processus en fonction de son PID.
function isRunning($pid){ try{ $result = shell_exec(sprintf("ps %d", $pid)); if( count(preg_split("/\n/", $result)) > 2){ return true; } }catch(Exception $e){} return false; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!