Отмена вызовов метода, когда один и тот же метод вызывается несколько раз

Я думаю, что, вероятно, есть название для того, что я описываю здесь, но я не знаю его. Итак, мой первый вопрос - узнать название этой техники.

Вот пример: предположим, вы реализуете живой поиск на веб-странице. Каждый раз, когда пользователь вводит в поле поиска, вы запускаете новый поисковый запрос, и результаты обновляются как можно чаще. Это глупо, потому что вы будете отправлять гораздо больше запросов, чем вам нужно. Отправка запроса один раз в 2-3 письма или максимум один раз в 100 мс, вероятно, будет достаточной.

Таким образом, метод заключается в том, чтобы планировать выполнение запросов вскоре после ввода ключа, и, если есть еще запросы, которые были запланированы, но не выполнены, отмените их, поскольку они устарели.

Теперь, более конкретно, существуют ли конкретные шаблоны или библиотеки для решения этой проблемы в Java?

Мне пришлось решить проблему в приложении Swing, и я использовал ExecutorService, который возвращал ScheduledFutures, которые я мог отменить. Проблема в том, что мне пришлось вручную создавать Runnable для каждого вызова метода, который я хотел «буферизовать», и отслеживать каждое будущее, чтобы отменить его.

Я уверен, что я не первый, кто внедряет что-то подобное, так что где-нибудь должно быть решение для повторного использования? Возможно, что-то весной с аннотациями и прокси?

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

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