Я хочу написать CommunicationSupervisor для подключения к устройству с этими функциями.
- Исходящие сообщения должны быть поставлены в очередь в структуре данных.
- Есть только один Потребитель. Потребитель должен проверить, есть ли элемент в очереди.
- Потребитель должен отправить исходящее сообщение и дождаться входящего ответа.
- Возможно создание новых исходящих сообщений, пока потребитель
ожидает ответа, но они не будут обработаны, пока потребитель
получает ответ для первого элемента, затем для второго и так далее
- Если потребитель получает тайм-аут для сообщения, должно возникнуть исключение, но потребитель должен продолжить работу с другими исходящими сообщениями в очереди.
Мой вопрос: каков наилучший метод для реализации этого? Должен ли я использовать SynchronousQueue в качестве структуры данных? Или у нас есть пример шаблона для этого? Кстати, мы используем Java 6. Поэтому решение для Java 8 не будет работать.
Спасибо за помощь