ここで説明しているものにはおそらく名前があると思いますが、私は知りません。だから私の最初の質問は、このテクニックの名前を知ることです.
以下に例を示します。Web ページにライブ検索を実装しているとします。ユーザーが検索ボックスに入力するたびに、新しい検索クエリが起動され、結果が可能な限り頻繁に更新されます。実際に必要な数よりもはるかに多くのクエリを送信することになるため、これは愚かなことです。2 ~ 3 文字ごとに 1 回、または多くても 100 ミリ秒ごとに 1 回リクエストを送信すれば、おそらく十分です。
したがって、キーが入力された直後にクエリが実行されるようにスケジュールし、計画されているが実行されていないクエリがまだある場合は、それらは廃止されているためキャンセルするという手法があります。
より具体的には、Java でこの問題を解決するための特定のパターンまたはライブラリはありますか?
私は Swing アプリで問題を解決する必要があり、キャンセルできる ScheduledFutures を返す ExecutorService を使用しました。問題は、「バッファリング」したいメソッド呼び出しごとに Runnable を手動で作成し、各 Future を追跡してキャンセルしなければならなかったことです。
私はこのようなものを実装した最初の人ではないと確信しているので、再利用可能なソリューションがどこかにあるはずです? 注釈とプロキシを備えたおそらくSpringの何か?