2014-05-24 26 views
5

Utilizzo la coda del servizio di Azure Service per inviare e-mail dalla mia app. Ho molti clienti diversi che inviano e-mail tramite la mia app e ogni messaggio riceve una proprietà che identifica quel cliente: CustomerIDcome si filtrano i messaggi della coda di bus di servizio di Azure in base alla proprietà di un messaggio?

Ho bisogno di scrivere un'area di amministrazione per i miei clienti per guardare il messaggio in sospeso nella coda e più importante vedi la coda delle deadletter. Non voglio che visualizzino deadline di tutti, quindi voglio filtrare i messaggi in base alla proprietà CompanyID.

Come posso realizzare questo?

Ho letto di argomenti e abbonamenti, ma aggiungo almeno 10+ clienti alla settimana e questa non sarebbe una soluzione ragionevole per me.

risposta

1

Le code non sono generalmente adatte per query e scenari di filtro avanzati. Sbirciare attraverso una coda di grandi dimensioni quando un cliente controlla lo stato può vanificare l'intero scopo di utilizzare un bus di servizio.

Il mio suggerimento è quello di memorizzare lo stato delle attività avviate nella memoria della tabella di Azure. Una volta che il ruolo del lavoratore viene elaborato o non riesce a elaborare un messaggio nella coda, potrebbe semplicemente aggiornare lo stato nell'archivio della tabella.

4

Le code non supportano il filtro. È possibile scrivere client admin che ottengono tutti i messaggi e filtrano sul client ma considerano Argomenti/Abbonamenti perché è possibile aggiungere facilmente fino a 2000 Sottoscrizioni per Argomento e quindi filtrare i messaggi in questi dal Cliente ecc. Per le cose che si desidera ripetutamente su Query un approccio come quello sopra menzionato, in cui un demone analizza la coda e aggiorna una tabella e quindi ogni cliente esegue query su quella tabella di stato funzionerebbe meglio.

Problemi correlati