Maison > développement back-end > tutoriel php > Comment puis-je exécuter des commandes PHP de manière asynchrone sans bloquer le script ?

Comment puis-je exécuter des commandes PHP de manière asynchrone sans bloquer le script ?

Susan Sarandon
Libérer: 2024-12-05 11:58:09
original
307 Les gens l'ont consulté

How Can I Execute PHP Commands Asynchronously Without Blocking the 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 &
Copier après la connexion

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 &"');
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal