fs.writeFile() 是否处理 nodejs 中的竞争条件?



在提问之前,我希望您具备有关aws-sqs的基本知识(虽然不是很必需(。

fs.writeFile()本身是否处理竞争条件?

我遇到了这样的实现,

function getMessage(){
sqs.receiveMessage( params , (err , data)=>{
if(err) handle it;
if(data.Messages){
for(var i = 0 ;  i < data.Messages.length ; i++){
fs.writeFile('./storage' , data.Messages[i].Body , (err)=>{
console.log('done');
});
}
}
})
}
for(var i = 0 ; i < 10000 ; i++){
getMessage();
}

对于那些对代码感到困惑的人,基本上我从 SQS(一种数据库查询(获取消息,然后在获取数据后,我将其写入'output'文件中。 该程序每天运行两次,从sqs获取近五十万条消息。

所以如果fs不处理竞争条件,那么我需要串行地做。 或者有更好的方法吗?

我对nodejs :)中的任何方法都持开放态度。

我认为您应该串行运行它。 FS 不处理争用条件。

请参阅此答案 (https://stackoverflow.com/a/21438964/6542250(。

相关内容

  • 没有找到相关文章

最新更新