Я искал довольно долгое время, чтобы найти способ сделать это. До сих пор во всех утешительных примерах использования очереди использовалась либо защелка, либо какой-то поток; https://github.com/SolaceSamples/solace-samples-java/tree/master/src/main/java/com/solace/samples Как только защелка удалена, ничего не потребляется. Есть ли способ обойти использование защелок?
Использование очереди Solace формы без использования защелки или потока
Ответы (1)
Вы можете использовать XMLMessageConsumer.receive()
. Javadocs можно найти здесь.
Solace Java API позволяет вам получать сообщения асинхронно или синхронно. Примеры, на которые вы ссылаетесь, используют сообщения асинхронно и используют защелку для синхронизации между потоками.
Обратите внимание, что в пакет Solace API включено больше примеров. BlockingSubscriber.java
в пакете API показывает пример того, как получать сообщения синхронно.
person
Russell Sim
schedule
24.03.2017
Есть ли способ избежать асинхронного использования защелок?
- person chey; 29.03.2017
Просто снимите защелки и убедитесь, что ваше приложение не завершает работу до получения сообщений. Кроме того, вы также можете обратиться к примеру
SimpleFlowToQueue.java
, который поставляется вместе с API.
- person Russell Sim; 06.04.2017
Когда я убираю защелки, приложение завершается сразу после запуска и ничего не потребляет. Есть причины, почему это происходит?
- person chey; 10.04.2017
Я полагаю, что это связано с тем, что приложению Java разрешено немедленно завершать работу, не дожидаясь получения полученного сообщения. Попробуйте добавить задержку перед завершением программы.
- person Russell Sim; 25.05.2017