Well it didn't.
That's why I had to make the changes.
But now, yes, when using methodCall I am passing the same value all the
time.
RomKal wrote:
>
> BTW I think that if you use delayer(3000) and set concurentConsumers=1
> on JMS endpoint it will work the way you want as delayer simply calls
> Thread.sleep() as far as I remember.
>
> Then every mesasge will be delayed for 3 sec and the second message
> will wait for the previous one to complete.
>
> Roman
>
> 2008/5/12 James Strachan <[EMAIL PROTECTED]>:
>> Awesome! Phew! Thanks for letting us know :)
>>
>>
>>
>> 2008/5/12 Krystian Szczesny <[EMAIL PROTECTED]>:
>> >
>> >
>> >
>> >
>> > James.Strachan wrote:
>> > >
>> > > 2008/5/12 Krystian Szczesny <[EMAIL PROTECTED]>:
>> > >> James.Strachan wrote:
>> > >> >
>> > >> > 2008/5/9 Krystian Szczesny
>> <[EMAIL PROTECTED]>:
>> > >> >>
>> > >> >>
>> > >> >>
>> > >> >> James.Strachan wrote:
>> > >> >>>
>> > >> >>> 2008/5/9 Krystian Szczesny
>> <[EMAIL PROTECTED]>:
>> > >> >>>>
>> > >> >>>> Hi,
>> > >> >>>>
>> > >> >>>>
>> > >> >>>> Before, when delaying single messages I've used for example
>> > >> >>>> delayer(3000)
>> > >> >>>> and it worked flawlessly.
>> > >> >>>> Now I need to delay a sequence of messages, so when I send
>> 5
>> > >> messages,
>> > >> >>>> the
>> > >> >>>> first should be delayed by 3000, second by 6000 etc...
>> > >> >>>>
>> > >> >>>> Is there any way I could do that with Camel?
>> > >> >>>
>> > >> >>> You just need to use an expression for the time that the
>> message is
>> > >> to
>> > >> >>> be sent at. So you could do something like...
>> > >> >>>
>> > >> >>> from("activemq:foo").delay().method("someBean",
>> > >> >>> "sendAtTime").to("activemq:bar");
>> > >> >>>
>> > >> >>> then the bean would look like this...
>> > >> >>>
>> > >> >>> public class SomeBean {
>> > >> >>> public long sendAtTime(@Header("MyDelayHeader") long delay)
>> {
>> > >> >>> if (delay <= 0) delay = 3000;
>> > >> >>> return System.currentTimeMillis() + delay;
>> > >> >>> }
>> > >> >>> }
>> > >> >>>
>> > >> >>> which would look for the MyDelayHeader on the message and use
>> that
>> > >> as
>> > >> >>> the
>> > >> >>> delay.
>> > >> >>>
>> > >> >>>
>> > >> >>> --
>> > >> >>> James
>> > >> >>> -------
>> > >> >>> http://macstrac.blogspot.com/
>> > >> >>>
>> > >> >>> Open Source Integration
>> > >> >>> http://open.iona.com
>> > >> >>>
>> > >> >>>
>> > >> >> Hi James,
>> > >> >>
>> > >> >> thanks for fast answer.
>> > >> >> One more thing if you could...
>> > >> >> I am using spring to configure the whole thing:
>> > >> >>
>> > >> >> <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:Delayed" />
>> > >> >> <delay>3000</delay>
>> > >> >> </delayer>
>> > >> >> </route>
>> > >> >> </camelContext>
>> > >> >>
>> > >> >> How can I add "method("someBean","sendAtTime")" to this
>> > >> configuration?
>> > >> >
>> > >> > <delayer>
>> > >> > <methodCall bean="something" method="sendAtTime"/>
>> > >> > ...
>> > >> > </delayer>
>> > >> >
>> > >> > For more details, configure your IDE to use the XSD...
>> > >> >
>> http://activemq.apache.org/camel/schema/spring/camel-spring-1.3.0.xsd
>> > >> >
>> > >> > then you'll get smart completion
>> > >> >
>> > >> > --
>> > >> > James
>> > >> > -------
>> > >> > http://macstrac.blogspot.com/
>> > >> >
>> > >> > Open Source Integration
>> > >> > http://open.iona.com
>> > >> >
>> > >> >
>> > >>
>> > >> Thx James,
>> > >>
>> > >> I've configured Eclipse to use the xsd file, but it does not
>> support
>> > >> smart
>> > >> completion i guess, it shows everything there is. But never mind
>> that.
>> > >
>> > > Strange - works for me in IntellIJ though :)
>> > >
>> > >>
>> > >> I've tried couple of scenarios [delay method returns
>> > >> System.currentTimeMillis() + 5000]:
>> > >>
>> > >> FIRST
>> > >> <camel:camelContext id="camel">
>> > >> <camel:route>
>> > >> <camel:from uri="activemq:queue:Delayed"
>> />
>> > >> <camel:delayer>
>> > >> <camel:methodCall
>> > >> bean="delayerBean" method="delay"/>
>> > >> <camel:to
>> > >> uri="activemq:queue:Output" />
>> > >> </camel:delayer>
>> > >> </camel:route>
>> > >> </camel:camelContext>
>> > >>
>> > >> Message is delivered to consumer of Output queue before the delay
>> method
>> > >> is
>> > >> being called.
>> > >>
>> > >> SECOND:
>> > >> <camel:camelContext id="camel">
>> > >> <camel:route>
>> > >> <camel:from uri="activemq:queue:Delayed"
>> />
>> > >> <camel:delayer>
>> > >> <camel:methodCall
>> > >> bean="delayerBean" method="delay"/>
>> > >> </camel:delayer>
>> > >> <camel:to uri="activemq:queue:Output" />
>> > >> </camel:route>
>> > >> </camel:camelContext>
>> > >> Result: same as above - message is consumed before the delay
>> method is
>> > >> called.
>> > >>
>> > >> Then I've tried with a class:
>> > >> public class CamelRoute extends RouteBuilder {
>> > >>
>> > >> @Override
>> > >> public void configure() throws Exception {
>> > >>
>> > >> from("activemq:queue:Delayed").delayer().method("delayerBean",
>> > >> "delay").to("activemq:queue:Output");
>> > >> }
>> > >> }
>> > >>
>> > >> and still same result. Message is sent to Output without any
>> delay :/
>> > >>
>> > >> What am I doing wrong?
>> > >
>> > > Your code looks valid to me; I guess there's some kinda bug in
>> there
>> > > somewhere. Will try take a look soon (I'm in the middle of a big
>> > > refactor...)
>> > >
>> > > --
>> > > James
>> > > -------
>> > > http://macstrac.blogspot.com/
>> > >
>> > > Open Source Integration
>> > > http://open.iona.com
>> > >
>> > >
>> >
>> >
>> > James... sorry about that.
>> > I've spotted the bug just before you've replied.
>> > I've added a new queue to my configuration and forgot to change the
>> message
>> > listener configuration... so onMessage was hitting on wrong queue :/
>> >
>> > Sorry again for that, it works like a charm now.
>> > --
>> > View this message in context:
>> http://www.nabble.com/Delay-messages-with-camel-sequentially-tp17144701s22882p17186941.html
>> >
>> >
>> > Sent from the Camel - Users mailing list archive at Nabble.com.
>> >
>> >
>>
>>
>>
>> --
>>
>>
>> James
>> -------
>> http://macstrac.blogspot.com/
>>
>> Open Source Integration
>> http://open.iona.com
>>
>
>
--
View this message in context:
http://www.nabble.com/Delay-messages-with-camel-sequentially-tp17144701s22882p17189445.html
Sent from the Camel - Users mailing list archive at Nabble.com.