Maison >développement back-end >tutoriel php >Comment puis-je exécuter des commandes PHP de manière asynchrone sans bloquer le script ?
Exécuter des commandes PHP sans attendre les résultats
L'exécution de commandes à l'aide de exec() en PHP amène généralement le script à attendre que la commande se termine . Cependant, il existe un moyen d'exécuter des commandes de manière asynchrone, permettant au script de continuer sans attendre les résultats.
La documentation explique que vous pouvez rediriger à la fois la sortie standard et l'erreur standard vers /dev/null, puis mettre en arrière-plan le commande pour y parvenir :
> /dev/null 2>&1 &
Cela garantit que la commande ne produit aucune sortie qui bloquerait le script PHP.
Alternativement, pour démarrez un processus complètement indépendant, vous pouvez utiliser la commande suivante :
exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');
Cette commande crée un nouveau shell Bash qui exécute la commande spécifiée. Le processus est détaché du thread Apache actuel et continuera à s'exécuter même si la page est fermée.
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!