Domanda

mi sto prendendo sulla funzione event in azoto, l'Erlang framework web , in un modulo web che viene eseguito quando si ottiene un postback.

La event eseguito sempre nello stesso processo per lo stesso web client (cioè finestra del browser o frame).

Ho ricordare almeno un caso in cui questo non è accaduto, ma non riesco a riprodurre.

È stato utile?

Soluzione

No, gli eventi di azoto vengono eseguiti in qualsiasi processo è attualmente gestendo la richiesta Web per l'azoto.

Dato che L'azoto è un quadro molto asincrono, si può avere più processi di movimentazione più eventi per la stessa finestra del browser o il frame in modo asincrono. Questo significa che si potrebbe benissimo avere diversi eventi vengono gestiti da processi separati.

Altri suggerimenti

Ciao ragazzi, ho scoperto il Registro di processo per l'azoto chiamato: nprocreg .
Quando si controlla la cartella applicazioni ( $ NITROGEN_INSTALL_DIR / apps / nprocreg ).

In questa applicazione, i processi possono essere depongono le uova su più server di azoto app anche su più macchine. Per sperimentare questo, avviare 2 nodi Erlang su due host differnt. ping in modo che siano collegati. (net_adm:ping(?OTHER_NODE)). Ora, avviare azoto su entrambi i nodi Erlang. Si potrebbe effettivamente iniziare prima l'azoto e poi il ping i due nodi
Assicurarsi che i due nodi di azoto stanno usando nomi lunghi cioè [NAME] @IP_ADDRESS su una LAN.
Ora, su una terza macchina sulla LAN, creare un DNS (Name Server). Mettere la stessa mappatura nome su due diversi indirizzi IP dei nostri due nodi che eseguono le applicazioni di azoto. Configurare l'azoto i due computer runnind per garantire che essi indicano l'indirizzo IP del DNS per i servizi DNS (effettivamente fare questo per tutti i computer della LAN).
Scoprirete che quando si richiede per una pagina (che risiede nella radice doc di entrambe le applicazioni di azoto) provenienti da diversi computer della LAN, utilizzando il nome mappato nel browser si vede che il server DNS fa una sorta di bilanciamento del carico .
Ora, Assicurarsi che la pagina che si sta richiedendo per grado di mostrare da quale server di azoto proveniente dal suo sull'interfaccia. Questa pagina deve avere per esempio un pulsante che genera un evento che wf:flash(wf:f("Some statement on the interface",[]))
Ora, richiedere questa pagina su due diversi computer e nota in cui ciascuno è di essere servito da. Poi, vai a un server azoto e fermarlo.
Quando ormai si fa clic sul pulsante sul browser che ha ottenuto la sua pagina di server di azoto che abbiamo appena messo giù, funziona ancora.
Questo è il motivo per cui, Rusty e gli amici hanno scoperto che se i processi di azoto possono essere registrati attraverso più applicazioni di azoto, quando viene eseguito un servizio di bilanciamento del carico, gli eventi possono essere inoltrati al qualsiasi applicazione di azoto nel cluster.
Naturalmente questo funziona bene se si assicurarsi che le due applicazioni su macchine diverse hanno le stesse pagine, moduli e la configurazione dei percorsi. Questo perché richiamare la funzione della manifestazione forse chiamando dire un'API di database.
Un esempio di bilanciamento utilizzando Server DNS di carico può essere visto quando si scava '' Google dal tuo terminale su Linux o Solaris in questo modo:

dig www.google.com
Vedrete che il name server ha lo stesso nome mappato su diversi indirizzi IP. Questo garantisce la disponibilità a livello di dominio e assicura una sorta di bilanciamento del carico
/joshmuza@gmail.com

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top