Come posso salvare lo stato dell'applicazione per un nodo.js Applicazione costituita principalmente da richiesta HTTP?Salvataggio dello stato dell'applicazione in Node.js
Ho uno script in Node.JS che funziona con un'API RESTful per importare un numero elevato (10.000+) di prodotti in un'applicazione E-Commerce. L'API ha un limite sulla quantità di richieste che possono essere fatte e stiamo fissando per rispolverare quel limite. In una precedente esecuzione lo script è terminato con uno Error: connect ETIMEDOUT
probabilmente a causa del superamento dei limiti API. Mi piacerebbe essere in grado di provare a connettersi 5 volte e se non riesce a riprendere dopo un'ora quando il limite è stato ripristinato.
Sarebbe anche utile salvare i progressi in caso di incidente (interruzione di corrente, arresti anomali della rete, ecc.). Ed essere in grado di riprendere la sceneggiatura dal punto in cui era stata interrotta.
So che Node.js funziona come una gigantesca coda di eventi, tutte le richieste http e i loro callback vengono inseriti in quella coda (insieme ad altri eventi). Questo lo rende un obiettivo primario per il salvataggio dello stato di esecuzione corrente. Altri piacevoli (non del tutto necessari per questo progetto) sarebbero stati in grado di distribuire il lavoro tra più macchine su reti diverse per aumentare il throughput.
Quindi c'è un modo esistente per farlo? Un quadro forse? O devo implementarlo io stesso, in tal caso, qualsiasi risorsa utile su come questo può essere fatto sarebbe apprezzato.
Quello che vuoi è una * coda di lavoro permanente *. Ce ne sono molti; uno piuttosto bello è [Kue] (http://learnboost.github.com/kue/) (build su redis). –
Penso che tu abbia assolutamente ragione. Kue è piuttosto brillante.Quindi, fondamentalmente nel produttore, leggerei il mio file di dati e nel consumatore potrei aggiungere/aggiornare ciascun prodotto. Quindi ogni prodotto sarebbe un lavoro separato. –