i have following concern / question about Hazelcast Queue Consumer:
- I do understand why Topic is build based on CamelItemListener as ItemListener in HazelcastTopicConsumer. But the same behavior in HazelcastQueueConsumer doesn't look meaningful:
- Unlike Topic, Queue has state and someone subscribed to Queue and didn't process it (any reason here) no one will take it from queue (Event Already happened and will not happen again). Message will be stuck there. Until you explicitly poll it, which Camel-Hazelcast doesn't support (as consumer). I had to do Polling via Camel-Timer as workaround.
- Another problem is that ItemListener doesn't actually drain the Queue. It just listens to events. As for me it doesn't make any sense to receive message from Queue and don't have it removed from Queue. In current implementation you'll have to inject queue in Processor to actually Poll the message after ADD Event.
If you won't change the code just please warn user here (http://camel.apache.org/hazelcast-component.html#HazelcastComponent-queue) that Queue consumer doesn't drain the queue. And Processor should actually drain it.
If node has failed to process message it should be explicitly polled to drain the queue via for example Timer.