On 7/20/21 5:23 PM, Paul McCulloch wrote:
You could use JMS. For each report define a route from timer/quartz to a
JMS queue - perhaps setting the query or the report name as the body.

You could have a single report execution route reading from the JMS queue,
and then executing the report defined in the message.

The problem here is that each report might have a different post-processing pipeline, which is—as far as I know, this decision was taken 8 years ago—why they were created as separate routes.

Still I like this approach and if the other approach, a custom scheduledExecutionService, won't work, I'll revisit it.


Use concurrentConsumers to control concurrency. You probably need to
specify a prefetchPolicy for the JMS consumer to ensure reports *are* run
in parallel.

Thank you for your suggestion! The prefetchPolicy is something I was unaware of.


--
Tomasz Melcer

Reply via email to