Длинный опрос с Spring's DeferredResult

Клиент периодически вызывает асинхронный метод (длинный опрос), передавая ему значение символа акции, которое сервер использует для запроса базы данных и возврата объекта обратно клиенту.

Я использую Spring'sDeferredResult класс, однако я не знаком с тем, как это работает. Обратите внимание, как я использую свойство символа (отправленное клиентом), чтобы запросить в базе данных новые данные (см. Ниже).

Возможно, есть лучший подход к долгому опросу с помощью Spring?

Как передать свойство символа из методаdeferredResult() вprocessQueues()?

    private final Queue<DeferredResult<String>> responseBodyQueue = new ConcurrentLinkedQueue<>();

    @RequestMapping("/poll/{symbol}")
    public @ResponseBody DeferredResult<String> deferredResult(@PathVariable("symbol") String symbol) {
        DeferredResult<String> result = new DeferredResult<String>();
        this.responseBodyQueue.add(result);
        return result;
    }

    @Scheduled(fixedRate=2000)
    public void processQueues() {
        for (DeferredResult<String> result : this.responseBodyQueue) {
           Quote quote = jpaStockQuoteRepository.findStock(symbol);
            result.setResult(quote);
            this.responseBodyQueue.remove(result);
        }
    }

Ответы на вопрос(1)

Ваш ответ на вопрос