2012-11-05 15 views
7

Desidero che un utente esegua alcune azioni ogni volta che viene ricevuto un messaggio. Il consumatore deve essere in esecuzione 24/7 "in ascolto" per la coda o può essere eseguito solo quando viene ricevuto un messaggio appropriato?RabbitMQ consumer on demand?

risposta

2

Non sono sicuro che la tua domanda abbia un senso. Il messaggio può essere ricevuto solo da una coda dal consumatore di una coda. Per sapere se un messaggio è in coda bisogna guardare la coda. L'unico modo per farlo è essere un consumatore.

Se si desidera realmente, è possibile avere uno script che esegua l'interfaccia della riga di comando per il plug-in di gestione. Questo poteva interrogare la coda e quando aveva una dimensione di più di uno poteva avviare un programma che gestiva un consumatore da consumare dalla coda.

Nulla di tutto ciò ha senso. Se è solo seduto in attesa della coda e non fa altro, difficilmente sta consumando risorse, quindi non vedo quale sarebbe il problema per l'utente 24/7.

Ovviamente il cliente non deve eseguire 24 ore su 24, questo fa parte del punto di MQ. È asincrono. Il consumatore non deve essere in esecuzione quando il produttore scrive in coda. Si potrebbe quindi avere un'attività pianificata che esegue periodicamente il consumatore per controllare ed elaborare i messaggi dalla coda. Ma non penso che sia quello che vuoi.

L'intero punto di ascolto è: non fare nulla finché non arriva un messaggio, elaborare il messaggio, non fare nulla fino al prossimo messaggio. Questo è ciò che vuoi la prima frase della tua domanda. Perché il problema con l'ascolto?

+0

Immagino che non ci siano problemi. Ho appena chiesto perché sto solo imparando e non so se un processo che sta solo ascoltando consuma molte risorse o no .. grazie mille per la tua risposta – vicmarq

+0

Fondamentalmente no, non dovrebbe consumare molto in termini di risorse . È necessario un processo in esecuzione tutto il tempo se si desidera utilizzare prontamente i messaggi anche se – robthewolf

+0

Alcuni mi hanno detto di non utilizzare PHP per processi di lunga durata come questi. Cosa ne pensi? – vicmarq

Problemi correlati