camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Karlsen <>
Subject Advice needed - throttling jms producing
Date Thu, 22 Oct 2015 11:23:05 GMT

I have a route which ends with sending to a jms queue.
OutOnly - no req/res.

In order to avoid producing too fast I want to throttle the production
rate based on queue depth (or ratio of max queue depth).

I have api's to query the queuedepth.

I've been looking at which
seems most suitable.
I can implement the maximumRequestsPerPeriod as a custom expression
which queries the messaging subsystem, and thus return a number of
messages "left" (e.g. maxdepth-currentdepth). I can further optimize
this a bit by caching the counting to every n-th invocation or
timewindow of 10 sec or so (so I don't query the mom for each and
every message -> overhead).

However it's not possible to "block entirely" by returning 0.

Of course I'm pretty close if returning 1 - which is probably a
situation we'll never get into anyway - as long as the consumer of
messages of the queue is in fact alive and able to process.

Anybody else done this? Seems like common usecase. Should it be
possible to return 0 in the expression and thereby block the route

David J. M. Karlsen -

View raw message