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

Reply via email to