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
> 
> 

I don't think there is .delay() there.
It's delayer() at least in 1.3.

And second thing... The code you have given, will only delay for 3000 not
mater what.
What I need is to send 9 messages and delay them for:
3000, 6000, 9000

It seems there is no way to handle that by Camel [or am I wrong?]. From what
I see I will have to specify the delay manually from within my producer... 
-- 
View this message in context: 
http://www.nabble.com/Delay-messages-with-camel-sequentially-tp17144701s22882p17148013.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to