Quindi il nodo funziona perfettamente per me. Ho un'applicazione server molto specifica che accetta essenzialmente richieste per eseguire una particolare procedura legata alla CPU, ed esegue un programma C per farlo. Il fatto è che, se ho più client, è molto probabile che otterrò più versioni della stessa richiesta. Sarebbe una buona ottimizzazione gestirla in qualche modo in modo esplicito, implementando una cache con qualcosa di un lock su una particolare chiave, in modo che altri client attenderanno semplicemente che quella richiesta ritorni e copi la sua risposta.Come creare una cache in node.js che gestisce esplicitamente richieste simultanee duplicate per un'operazione legata alla CPU
Ma io sono nuovo per il nodo, quindi non so come farlo nel mio meccanismo di base del gestore di richieste router-nodo. Ovviamente potrei farlo in linguaggio x usando primitive di concorrenza di base, ma so che il nodo è orientato all'evento e penso che questo potrebbe essere fatto in modo elegante in un modo event. Idee?
Penso che tu sia sulla strada giusta, la mia preoccupazione principale è se ho bisogno di gestire per la concorrenza quando si controlla l'array per la chiave e come gestire l'attesa che la risposta torni se la chiave è registrata ma il valore non è ancora disponibile. ciò di cui ho veramente bisogno è un meccanismo di concorrenza di qualche tipo associato a un modo per registrare un evento affinché i client si sveglino quando il valore diventa disponibile. questa è la parte in cui sono davvero bloccato su – William
suppongo che potrei avere la cache che gestisce un emettitore di eventi per ogni chiave per consentire la registrazione? quindi devo solo fare i conti con la concorrenza – William