C'è codice,parallelo asincrono Node.js - quali sono le conseguenze?
async.series(tasks, function (err) {
return callback ({message: 'tasks execution error', error: err});
});
dove, tasks
è gamma di funzioni, ciascuna di essa peforms richiesta HTTP (utilizzando il modulo request
) e chiamando MongoDB API per memorizzare i dati (per esempio MongoHQ).
Con il mio ingresso di corrente, (~ 200 compito da eseguire), ci vuole
[normal mode] collection cycle: 1356.843 sec. (22.61405 mins.)
Ma semplicemente cercando cambiamento series
-parallel
, dà magnifico beneficio. La quasi identica quantità di attività viene eseguita in ~30 secs
anziché in ~23 mins
.
Ma, sapendo che nulla è gratis, sto cercando di capire quali sono le conseguenze di questo cambiamento? Posso dire che il numero di socket aperti sarà molto più alto, più consumo di memoria, più successo ai server DB?
La macchina su cui eseguo il codice è solo 1 GB di RAM Ubuntu, quindi l'app si blocca una volta sola, può essere causata dalla mancanza di risorse?
Probabilmente dovresti modificare e usare 'async.parallelLimit (array, limit, cb)' per prestazioni migliori. Trova un limite di esecuzioni parallele che non eccedano l'esecuzione, e sarà più veloce di async.parallel: P Come bonus, non si bloccherà più :) – randunel