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 past, the first route would be suspended. Might be able to use Camel metrics, but that's probably overkill for this use-case.
regards Darius On Mon, Feb 24, 2020 at 8:33 AM nomit babraa <h.bab...@sheffield.ac.uk> wrote: > 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 <aldettin...@gmail.com> > wrote: > > > > 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 <h.bab...@sheffield.ac.uk> > > wrote: > > > > > 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 think I can use schedulers and throttling to almost achieve what I > > > want but I explicitly want the route to be stopped when all current > > > messages that are found by the selector are consumed. > > > > > > I'm not sure how to get that metric and act upon it? > > > > > > Many thanks for any advice... > > > > > > n > > > >