Mise à l'échelle de l'application
Node.js fonctionne en mode single-thread, mais il utilise un paradigme événementiel pour gérer la concurrence. Il facilite également la création de processus enfants afin de tirer parti du traitement parallèle sur les systèmes basés sur des CPU multi-cœurs.
Les processus enfants ont toujours trois flux child.stdin, child.stdout, et child.stderr qui peuvent être partagés avec les flux stdio du processus parent.
Node fournit le module child_process qui offre les trois principales façons suivantes de créer un processus enfant.
- exec - la méthode
child_process.exec()
exécute une commande dans un shell/console et met en mémoire tampon la sortie. - spawn - La méthode
child_process.spawn()
lance un nouveau processus avec une commande donnée. - fork - La méthode
child_process.fork()
est un cas particulier de la méthode spawn() pour créer des processus enfants.
La méthode exec()
La méthode child_process.exec exécute une commande dans un shell et met en mémoire tampon la sortie. Elle a la signature suivante :
child_process.exec(command[, options], callback)
Paramètres
Voici la description des paramètres utilisés :
- command (String) La commande à exécuter, avec des arguments séparés par des espaces.
- options (Object) peut comprendre une ou plusieurs des options suivantes :
- cwd (Chaîne) Répertoire de travail actuel du processus enfant
- env (Objet) Paires clé-valeur de l'environnement
- encoding (Chaîne) (Par défaut : 'utf8')
- shell (Chaîne) Shell pour exécuter la commande (par défaut : '/bin/sh' sous UNIX, 'cmd.exe' sous Windows, Le shell doit comprendre le commutateur -c sous UNIX ou /s /c sous Windows. Sous Windows, l'analyse de la ligne de commande doit être compatible avec cmd.exe).
- timeout (Nombre) (Défaut : 0)
- maxBuffer (Nombre) (Défaut : 200*1024)
- killSignal (Chaîne) (Défaut : 'SIGTERM')
- uid (Nombre) Définit l'identité de l'utilisateur du processus.
- gid (Nombre) Définit l'identité du groupe du processus.
- callback La fonction reçoit trois arguments error, stdout, et stderr qui sont appelés avec la sortie lorsque le processus se termine.
La méthode exec()
renvoie un tampon avec une taille maximale et attend que le processus se termine pour essayer de renvoyer toutes les données mises en tampon en une seule fois.
Exemple
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !