2011-01-12 8 views
12

Sto cercando di ottenere una migliore comprensione del perché si consiglia di non pubblicare() i messaggi provenienti da un sito web utilizzando NServiceBus (NServiceBus Documentation, scorrere fino a circa due terzi del cammino giù).NServiceBus Pubblica() vs. Send() in un contesto sito

Non ha senso semantico pubblicare gli eventi Publish() e Send()? Se è così, penso che un'applicazione web possa essere sia Publish() che Send() :-)

Inoltre, dato che l'uso di Publish() non richiede che l'applicazione web sia a conoscenza dei destinatari del messaggi (Send() richiede all'applicazione web di avere tutti gli endpoint del destinatario configurati), sembra che Publish() sia un'opzione migliore per molti scenari in modo che tu possa 'arbitrariamente' sottoscrivere le applicazioni alle code dei messaggi.

Qualcuno ha forti sentimenti a riguardo, in un modo o nell'altro? Mi piacerebbe sentire i tuoi pensieri e opinioni.

risposta

18

Disclaimer: Ho scritto questo post sul blog.

Why not publish NServiceBus messages from a web application?

+0

grazie per il link del blog. un altro motivo per cui non si vorrebbe pubblicare un messaggio da un sito Web è perché sarebbe necessario disporre di un subscriptionstorage. tipicamente questo sarebbe un database. –

+0

Grazie, David. Il tuo post sul blog fornisce una risposta davvero completa alla mia domanda. Sto costruendo un'app web che non è del tutto 'stupida' come hai descritto tu - ma è vicina. Sono nuovo di NServiceBus (ovviamente), quindi guadagno lentamente, ma seguirò il consiglio che dovrei usare Bus.Send() perché quello che sto cercando di ottenere è di ottenere un long-running processo avviato. Più avanti, spero che il resto dell'app web si "scomodi" introducendo NServiceBus a tutti i miei limiti di comando. Grazie! –

+0

David, ho pubblicato un'altra domanda pertinente qui: http://stackoverflow.com/questions/4678721/nservicebus-nhibernate-and-guidcomb. Ti dispiacerebbe dare un'occhiata a questo se hai un minuto? Molte grazie, Øyvind –

Problemi correlati