Re: Stopping a Route when no more messages meet JMS selector

2020-02-26 Thread nomit babraa
Hi Thanks for all the input. Decided to use Jan's excellent suggestion, and non-IDE tested code that worked straight off! :) Many thanks indeed, I'm slowly learning how powerful Camel is! Cheers On Mon, 24 Feb 2020 at 23:02, Jan Bednář wrote: > > Hi, > another idea can be pollEnrich. Content

Re: Stopping a Route when no more messages meet JMS selector

2020-02-25 Thread Darius Cooper
What if you had a separate timer route that monitored some simple state and suspended the original route? E.g. every time the original route processes an exchange, it could update a "Last Timestamp" A separate timer route would check this timestamp. If it is more than N seconds/minutes in the

Re: Stopping a Route when no more messages meet JMS selector

2020-02-24 Thread Jan Bednář
Hi, another idea can be pollEnrich. Content Enricher produces empty message, when timeout occures (in this case 1s). You can react on this by stopping route. from("timer:drain_messages?period=1")     .pollEnrich("jms:queue?selector=whatever", 1000)     .choice()            

Re: Stopping a Route when no more messages meet JMS selector

2020-02-24 Thread nomit babraa
Hi Looks interesting but can't see a way to set that property from any examples. I did find www reference to camel.springboot.duration-max-idle-seconds= but I was hoping for something I could set with JMS uri options or java DSL. Cheers On Mon, 24 Feb 2020 at 08:19, Alex Dettinger wrote:

Re: Stopping a Route when no more messages meet JMS selector

2020-02-24 Thread Alex Dettinger
Not sure about the exact implementation, but I would investigate the camel code around MainSupport.durationIdle. On Sun, Feb 23, 2020 at 11:22 PM nomit babraa wrote: > Hi > > I was wondering if there is any way to do the following: > > - A route starts up. > - It consumes certain messages from

Stopping a Route when no more messages meet JMS selector

2020-02-23 Thread nomit babraa
Hi I was wondering if there is any way to do the following: - A route starts up. - It consumes certain messages from an AMQ queue using a selector. - Once all current messages are consumed the route is stopped/suspended (Control Bus, CamelContext.stop(), THROTTLINGINFLIGHTROUTEPOLICY, etc) I