Problema con routing tra due chicchi usando apache cammello
-
27-09-2019 - |
Domanda
il mio percorso cammello è il seguente
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" >
<route>
<from uri="bean:SendClass?method=send" />
<to uri="jms:MyQueue" pattern="InOnly" />
</route>
<route>
<from uri="jms:MyQueue" />
<to uri="bean:recvClass?method=recv" />
</route>
</camelContext>
Il metodo di trasmissione invia messaggi quando attivato da un 3rd party Pojo ad un certo intervals.But irregolare, il problema credo sia cammello è il riavvio le vie di una volta che il messaggio viene ricevuto dal fagiolo recv e inviare di nuovo lo stesso messaggio (centinaia di di loro in un secondo) .Ideally lo voglio inviare il messaggio quando il metodo di invio viene attivato e un nuovo messaggio è stato creato (cioè JMS Queue deve essere avere del messaggio unico) .come faccio a fare questo?
possibili soluzioni di essere:
- è la loro qualche attributo che posso mettere dentro la
<from.../>
fare questo? - scrivere un processore a filtro unico messaggio di tra il fagiolo invio e la coda.
- È il loro un altro modo di instradamento senza usare il
<from uri="bean:..." />
grazie sanre6
Soluzione
Non si dovrebbe avere il percorso prima. Quando fate che dici Camel costantemente richiamare il metodo di invio su quella di fagioli e farlo passare. E quindi questo che si vede 100s di messaggi al secondo.
Invece si dovrebbe usare alcune API Camel dal all'interno del codice di fagioli e inviare il messaggio alla coda JMS. Ad esempio utilizzando un ProducerTemplate.