Node.js - Sync vs Async FS lors de l'utilisation dans Docker (architecture de microservice)


Sel

J'ai un microservice (dans docker swarm) que tout ce qu'il faut faire est de nettoyer les fichiers d'un dossier et c'est tout

est-il bon dans ce cas d'utiliser une fonction de synchronisation? J'aimerais.

1- trouver la taille du dossier

2- exécuter tous les fichiers et supprimer

et il y a un cron qui exécute le flux toutes les minutes alors pourquoi dois-je utiliser async? et ne pas synchroniser

y a-t-il un problème dans ce code? est-ce bien que je m'enveloppe avec une promesse ou parce qu'elle se synchronise pour ne pas avoir besoin d'une promesse?

par exemple :

function getTotal(){   
  let totalSize = 0;

      files.map(file => {
        totalSize += fs.statSync(file.path).size;
      });

      return totalSize;
}

pour obtenir tous les fichiers:

   fs.readdirSync(dirPath).map(file => {
          const fileOrDir = fs.statSync(
            [dirPath, file].join('/')
            })
   );

retirer :

  const unlink = util.promisify(
    fs.unlink
  );
  await unlink(filePath);

tout le flux:

files = await service.getFiles(folderPath);
service.getTotal();
for(files){
   await this.removeFile(file);
}
jfriend00

il y a un cron qui exécute le flux toutes les minutes, alors pourquoi dois-je utiliser async?

Si ce processus ne fait rien d'autre qui nécessite de la réactivité sauf le nettoyage de ces fichiers (aucun serveur n'écoutant les connexions entrantes), alors les syncE / S sont très bien. Vous pouvez simplement utiliser unlinkSync().

Pour info, si vous aviez besoin d'utiliser des E / S non bloquantes, il n'est plus nécessaire de promettre manuellement fsles fonctions du module dans node.js (même si vous vouliez utiliser des API non bloquantes) car l' fs.promisesinterface contient des versions promises de la plupart des fonctions.

Articles connexes


Authentification unique dans l'architecture de microservice

Ido Ran: J'essaie de concevoir un projet sur le terrain qui aura plusieurs services (service de données) et applications Web (service HTML). J'ai lu sur les microservices et ils semblent bien adaptés. Le problème que j'ai toujours est de savoir comment impléme

Configurer GOROOT dans Goland lors de l'utilisation de docker

hY8vVpf3tyR57Xib: Je construis un projet Go avec Docker dans le nouvel IDE GoLand. Malheureusement, je ne suis pas en mesure de cofigurer mon GOROOTcorrectement, ce qui ne permet pas d'utiliser les futurs GoLand au maximum. J'ai le dockerfile suivant: FROM gol