fs.writeFile() 是否处理 nodejs 中的竞争条件?
does fs.writeFile() handles race condition in 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 中获取近 50 万条消息。
所以如果 fs 不处理竞争条件,那么我需要连续处理。还是有更好的方法?
我对 nodejs 中的任何方法持开放态度 :)。
我认为你应该 运行 连载。 fs 不处理竞争条件。
参考这个答案()。
在提问之前,我希望你对 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 中获取近 50 万条消息。
所以如果 fs 不处理竞争条件,那么我需要连续处理。还是有更好的方法?
我对 nodejs 中的任何方法持开放态度 :)。
我认为你应该 运行 连载。 fs 不处理竞争条件。
参考这个答案()。