camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Krystian Szczesny <Krystian.Szcze...@intecbilling.com>
Subject Re: Delay messages with camel sequentially
Date Fri, 30 May 2008 10:31:46 GMT

Hi again,

I've encountered another problem with camel delayer.
Well before it was a feature for me, but it became a problem ;]

When using the delayer with methodCall it seems like there is only one
process handling the route [I don't know how to put it in right words]. 
When I will send 10 messages it seems that each of them is handled
separately.
10 messages are put into queue
message 1 is taken, it is delayed, it is sent
message 2 is taken, it is delayed, it is sent

I would like to see something like this:
message 1 is taken, it is delayed,
message 2 is taken, it is delayed,
message 3 is taken, it is delayed
let's say that message 1 delay has come to an end so it is sent
message 4 is take, it is delayed,
mesage 2 delay has come to an end so it it sent
and so on

I need it to work asynchronously, is there a way to do that?

When I use this settings:
 <camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
                <route>
                        <from uri="activemq:queue:Input" />
                        <delayer>
                                <simple>header.JMSTimestamp</simple>
                                <to uri="activemq:queue:Output" />
                                <delay>3000</delay>
                        </delayer>
               </route>
        </camelContext> 

It seems to work this way, but I need to have more control over what is
going on, so I really need that method call.

When adding it:
	        <camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
                <route>
                        <from uri="activemq:queue:Input" />
                        <delayer>
                                <simple>header.JMSTimestamp</simple>
                                <to uri="activemq:queue:Output" />
                                <methodCall bean="delayerBean"
method="delay"/>
                                <!-- <delay>3000</delay> -->
                        </delayer>
                </route>
        </camelContext> 

It suddenly starts to work synchronously.

I've tried nesting methodCall in <delay> but that didn't work either ;)

I would appreciate some help in this matter.
-- 
View this message in context: http://www.nabble.com/Delay-messages-with-camel-sequentially-tp17144701s22882p17555926.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message