Hi,
I evaluated Camel's MulticastProcessor for asynchronous processing and get
somewhat disappointed because it actually blocks N+1 threads (N is a fork
factor in a particular multicast). And then around blocking code I found next
comments:
MulticastProcessor lines 323-327:
// its to hard to do parallel async routing so we let the caller
thread be synchronously
// and have it pickup the replies and do the aggregation (eg we use
a latch to wait)
// wait for aggregation to be done
LOG.debug("Waiting for on-the-fly aggregation to complete
aggregating {} responses for exchangeId: {}", total.get(),
original.getExchangeId());
aggregationOnTheFlyDone.await();
MulticastProcessor lines 710-711:
// we invoke it synchronously as parallel async routing is too hard
AsyncProcessorHelper.process(async, exchange);
Is there a non-blocking threadless-wait alternative to the MulticastProcessor?
--
Best regards
Michael