Scusate la mia ignoranza, sto imparando attualmente come utilizzare Node proveniente da uno sfondo PHP in cui non ho davvero avuto alcuna interazione con Apache o con la gestione del server. Sto usando Heroku per ospitare i miei progetti Node, spinti direttamente dall'IDE Cloud9.Elaborazione figlio Node.js su Heroku con Dyno singolo
Da quello che ho letto, un dump di Heroku è un singolo processo web, l'acquisto di dinamiche aggiuntive ti consentirà di gestire più traffico in arrivo perché aumentando i dinhi aumenterai la dimensione della quantità di richieste che puoi gestire con in qualsiasi momento.
So che il nodo è un sistema a thread singolo che gestisce le richieste una per una, consentendo di generare processi figlio per tutto ciò che potrebbe richiedere del tempo (come richieste di database, elaborazione di file, ecc.).
Quindi cosa succede in Heroku se si genera un processo figlio con un singolo dino? Non ha bisogno di un altro banco su cui lavorare? Sicuramente se Node sta eseguendo un singolo processo e ho solo un processo disponibile nel mio singolo dyno, qualsiasi processo aggiuntivo dovrà essere gestito da quello stesso?
Oppure ho tutto sbagliato?
Non è necessario avviare processi di nodo separati per fare richieste di database e l'elaborazione dei file avviene in modo asincrono ... non doverlo fare è il vantaggio di nodejs. Se stai generando un numero non deterministico di "thread/processi" di lavoro, stai assolutamente utilizzando NodeJS in modo errato. E con quella risposta, credo che dovresti essere in grado di rispondere alla tua stessa domanda. Se desideri maggiori dettagli, fammi sapere! – ChrisCM
Grazie per la risposta, Chris. Potrei non essermi spiegato correttamente - la mia conoscenza del Nodo al momento non si estende troppo al di fuori di quella dettagliata nel libro Node Beginner, in cui un esempio usa 'var exec = require (" child_process "). Exec;' e poi usa la funzione 'exec' nell'esecuzione di una costosa operazione shell per dimostrare il codice non bloccante. Quindi, come ho capito, in questo esempio l'operazione di shell viene rinviata a un altro processo in modo che il processo principale possa continuare a ricevere nuove richieste e successivamente ricevere una richiamata per visualizzare la risposta della richiesta iniziale. – mibbler
Ho inviato i miei commenti come risposta. – ChrisCM