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()
.when(body().isNull())
.to("controlbus:route?routeId=current&action=stop&async=true")
.otherwise()
.to("log:do_actual_processing");
I have wrote this directly to email without my IDE, but I think this
should work.
Dne 24.2.2020 v 14:32 nomit babraa napsal(a):
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