我有一个微服务(在docker swarm中),所有需要做的就是从1个文件夹中清除文件,仅此而已
在那种情况下使用同步功能好吗?我想要。
1-查找文件夹大小
2-运行所有文件并删除
并且有一个cron每分钟运行一次那么为什么我需要使用异步?并且不同步
这段代码有什么问题吗?我用promise包裹还是因为它同步所以不需要promise是很好吗?
例如:
function getTotal(){
let totalSize = 0;
files.map(file => {
totalSize += fs.statSync(file.path).size;
});
return totalSize;
}
获取所有文件:
fs.readdirSync(dirPath).map(file => {
const fileOrDir = fs.statSync(
[dirPath, file].join('/')
})
);
删除:
const unlink = util.promisify(
fs.unlink
);
await unlink(filePath);
所有流程:
files = await service.getFiles(folderPath);
service.getTotal();
for(files){
await this.removeFile(file);
}
有一个cron每分钟运行一次流程,所以为什么我需要使用async?
如果此过程除了清除这些文件之外没有执行任何其他需要响应的操作(没有服务器侦听传入的连接,则sync
I / O很好。
尽管您可以直接使用unlinkSync()
,因为您的脚本不需要执行非阻塞I / O,但如今,由于fs
界面包含大多数功能的Promise版本。