Использование очереди Solace формы без использования защелки или потока

Я искал довольно долгое время, чтобы найти способ сделать это. До сих пор во всех утешительных примерах использования очереди использовалась либо защелка, либо какой-то поток; https://github.com/SolaceSamples/solace-samples-java/tree/master/src/main/java/com/solace/samples Как только защелка удалена, ничего не потребляется. Есть ли способ обойти использование защелок?


person chey    schedule 23.03.2017    source источник


Ответы (1)


Вы можете использовать XMLMessageConsumer.receive(). Javadocs можно найти здесь.

Solace Java API позволяет вам получать сообщения асинхронно или синхронно. Примеры, на которые вы ссылаетесь, используют сообщения асинхронно и используют защелку для синхронизации между потоками.

Обратите внимание, что в пакет Solace API включено больше примеров. BlockingSubscriber.java в пакете API показывает пример того, как получать сообщения синхронно.

person Russell Sim    schedule 24.03.2017
comment
Есть ли способ избежать асинхронного использования защелок? - person chey; 29.03.2017
comment
Просто снимите защелки и убедитесь, что ваше приложение не завершает работу до получения сообщений. Кроме того, вы также можете обратиться к примеру SimpleFlowToQueue.java, который поставляется вместе с API. - person Russell Sim; 06.04.2017
comment
Когда я убираю защелки, приложение завершается сразу после запуска и ничего не потребляет. Есть причины, почему это происходит? - person chey; 10.04.2017
comment
Я полагаю, что это связано с тем, что приложению Java разрешено немедленно завершать работу, не дожидаясь получения полученного сообщения. Попробуйте добавить задержку перед завершением программы. - person Russell Sim; 25.05.2017