Progression de la sortie des commandes en streaming
Dans l'exécution des commandes, il est souvent souhaitable de récupérer non seulement la sortie finale mais également la partie partielle sortie telle qu'elle est générée. Cela permet de surveiller en temps réel l’exécution de la commande. Dans Go, en utilisant le package exec pour exécuter des commandes, nous pouvons diffuser la progression de la sortie en exploitant le mécanisme de canal.
L'extrait de code fourni initialise une commande et utilise cmd.StdoutPipe() pour créer un canal pour la commande. sortie standard. Un bufio.Scanner est ensuite utilisé pour lire la sortie du tube. Lorsque la commande écrit sur sa sortie standard, le scanner détecte les sauts de ligne et émet les lignes sous forme de chaînes. Chaque ligne est ensuite imprimée et enregistrée simultanément.
Cependant, si la commande n'imprime pas explicitement les sauts de ligne, la sortie ne sera pas diffusée en temps réel. Pour résoudre ce problème, des stratégies alternatives peuvent être utilisées.
Solutions de contournement possibles :
Considérations :
En utilisant ces techniques, vous pouvez diffuser efficacement la sortie partielle des commandes exécutées dans Go, permettant surveillance et dépannage en temps réel.
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!