Per alcuni giorni ho cercato una soluzione funzionante a un errore
Error: EMFILE, too many open files
Sembra che molte persone abbiano lo stesso problema. La solita risposta comporta l'aumento del numero di descrittori di file. Quindi, ho provato questo:
sysctl -w kern.maxfiles=20480
,
Il valore predefinito è 10240. Questo è un po 'strano ai miei occhi, perché il numero di file che gestisco nella directory è inferiore a 10240. Ancora più strano, ricevo ancora lo stesso errore dopo aver aumentato il numero di descrittori di file .
Seconda domanda:
Dopo una serie di ricerche ho trovato un problema per il problema "troppi file aperti":
var requestBatches = {};
function batchingReadFile(filename, callback) {
// First check to see if there is already a batch
if (requestBatches.hasOwnProperty(filename)) {
requestBatches[filename].push(callback);
return;
}
// Otherwise start a new one and make a real request
var batch = requestBatches[filename] = [callback];
FS.readFile(filename, onRealRead);
// Flush out the batch on complete
function onRealRead() {
delete requestBatches[filename];
for (var i = 0, l = batch.length; i < l; i++) {
batch[i].apply(null, arguments);
}
}
}
function printFile(file){
console.log(file);
}
dir = "/Users/xaver/Downloads/xaver/xxx/xxx/"
var files = fs.readdirSync(dir);
for (i in files){
filename = dir + files[i];
console.log(filename);
batchingReadFile(filename, printFile);
Purtroppo continuo a ricevere lo stesso errore. Cosa c'è di sbagliato in questo codice?
Un'ultima domanda (sono nuovo di JavaScript e nodo), sto sviluppando un'applicazione web con molte richieste per circa 5000 utenti giornalieri. Ho molti anni di esperienza nella programmazione con altri linguaggi come Python e Java. così originariamente ho pensato di sviluppare questa applicazione con django o play framework. Poi ho scoperto il nodo e devo dire che l'idea del modello I / O non bloccante è davvero carina, seducente e soprattutto molto veloce!
Ma che tipo di problemi dovrei aspettarmi con il nodo? È un web server collaudato in produzione? Quali sono le tue esperienze?