Maison > développement back-end > tutoriel php > Comment puis-je exécuter des processus en arrière-plan en PHP sans bloquer l'interface utilisateur ?

Comment puis-je exécuter des processus en arrière-plan en PHP sans bloquer l'interface utilisateur ?

DDD
Libérer: 2024-12-27 21:51:09
original
338 Les gens l'ont consulté

How Can I Execute Background Processes in PHP Without Blocking the User Interface?

Exécuter des processus en arrière-plan en PHP

De nombreuses applications Web nécessitent l'exécution de tâches fastidieuses, telles que la copie de répertoires. Pour améliorer l'expérience utilisateur, il est souhaitable d'exécuter ces tâches en arrière-plan sans perturber l'interface utilisateur.

Exécution de processus en arrière-plan en PHP :

En PHP, l'exécution de processus en le contexte peut être difficile. Cependant, pour les environnements Linux, une solution courante consiste à utiliser la fonction exec :

exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfile, $pidfile));
Copier après la connexion

Cette commande permet d'obtenir les résultats suivants :

  • Lance $cmd : La commande à exécuter en arrière-plan.
  • Redirections Sortie : Routes stdout et sortie stderr dans le $outputfile.
  • Enregistre l'ID du processus : Stocke l'ID du processus dans $pidfile.

Surveillance du processus :

Pour suivre la progression du processus en arrière-plan, une fonction d'assistance peut être utilisé :

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;
}
Copier après la connexion

Cette fonction vous permet de vérifier si le processus avec le PID spécifié est toujours en cours d'exécution, en fonction de la sortie de la commande ps.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal