samedi 28 mars 2015

Node.js file write in loop fails randomly

Here is my code :



function aCallbackInLoop(dataArray) {
dataArray.forEach(function (item, index) {

fs.appendFile(fileName, JSON.stringify(item) + "\r\n", function (err) {
if (err) {
console.log('Error writing data ' + err);
} else {
console.log('Data written');
}
});
});
}


I get random errors :



Data written
Data written
.
.
Error writing data Error: UNKNOWN, open 'output/mydata.json'
Error writing data Error: UNKNOWN, open 'output/mydata.json'
.
.
Data written
Error writing data Error: UNKNOWN, open 'output/mydata.json'


The function (aCallbackInLoop) is a callback for a web-service request, which returns chunks of data in dataArray. Multiple web-service requests are being made in a loop, so this callback is perhaps being called in parallel. I doubt it's some file lock issue, but I am not sure how to resolve.


PS: I have made sure it's not a data issue (I am logging all items in dataArray)


Aucun commentaire:

Enregistrer un commentaire