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:

  1. è la loro qualche attributo che posso mettere dentro la <from.../> fare questo?
  2. scrivere un processore a filtro unico messaggio di tra il fagiolo invio e la coda.
  3. È il loro un altro modo di instradamento senza usare il <from uri="bean:..." />

grazie sanre6

È stato utile?

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.

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