Консолидация нескольких ответов на один запрос с помощью MessageListener - PullRequest
1 голос
/ 09 июля 2019

У меня есть требование в моем проекте, где я получу несколько ответов для одного идентификатора запроса в моем методе onMessage MessageListener.Ответы будут связаны с запросом с помощью поля requestId, которое будет присутствовать во всех ответах.Также у каждого ответа будет поле для общего количества ответов, которое будет подсчитывать все ответы на запрос.Требуется объединить все ответы и отправить вызывающему только тогда, когда все ответы получены

. В настоящее время я написал собственный кэш (LinkedHashMap), в котором будет храниться идентификатор запроса вместе со списком ответов, которые яЯ вручную заполняю.Как только кэш заполнен, я помещаю его в очередь блокировки, которую мой контроллер будет использовать, когда мой ответ будет готов.Учитывая, что мой контроллер и MessageListener находятся в отдельном потоке, есть ли способ синхронно обработать эту ситуацию?

...