I have a situation that requires me to develop a 'Soft Queue'. First let me explain my requirement. The system under consideration has some 'text' messages flowing at a rate of about 1 msg/sec. This is a critical process & i need to log any failures to processes these msgs to a table. At the same time i do not want to affect the 1 msg/sec rate. Thus i would like to decouple the Message processing process from the Error Message logging process. Also i cannot use JMS Queues or other related Queues. What i require is that the Message Processing method should put the failed text messages in some sort of Queue. The job of Message Processing method ends there. I need a mechanism by which the Error Message logging process will be notified of this & it will log the error in the table. Thus the Message Processing method is not held up till the Error Msg is logged. This is some sort of Consumer-Producer problem & Observerable pattern. Please let me know how i can go about this?
Find the blocking queue in the Commons Thread Pool. It's very simple and ought to drop right into what you need. The log writer would block on a get message call rather than waiting for a notification. If you don't like that bit we can try to change it around to what you need.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi