Я пытаюсь подобрать правильный способ опроса сервера с постоянным интервалом (например, ~ 1 секунда).
Поток идет следующим образом
- клиентское приложение получает сообщение, указывающее, что опрос может начаться с предоставленными параметрами (он не опрашивается, когда в этом нет необходимости)
- клиентское приложение начинает опрос конечной точки http каждую ~ 1 секунду с параметрами, полученными с сообщением (например, параметром запроса)
- приложение сервера отвечает со статусом в ожидании , что указывает на то, что клиент должен продолжить опрос
- Серверное приложение отвечает со статусом Закончено и возвращает результат - нет необходимости продолжать опрос.
У нас может быть несколько потоков, поскольку клиентское приложение может получить несколько сообщений за короткое время - опрос должен начаться немедленно
Я не хочу изобретать велосипед, может, есть подходящий инструмент, который работает с Java / Spring, который я могу использовать?
Основные характеристики
- опрос только при необходимости
- опрос с пользовательскими параметрами (пользовательские параметры в строке запроса)
- масштабный опрос, поскольку приложение может опрашивать несколько конечных точек одновременно с одинаковым интервалом
Я проходил различные библиотеки, такие как Apache Camel или Spring Integration PollableChannel, но я чувствую, что ни один из них не даст мне правильного решения из коробки.
Если такой библиотеки нет, я собираюсь написать ее самостоятельно, используя redis и простой цикл, но, возможно, кто-то сталкивался с подобной проблемой.