IRCボットを作成しましたが、フラッディングの問題が発生しました。私はメッセージの間隔を空ける方法を見つけようとしています。そうすれば、10人全員が同時にコマンドを実行しても、ボットが過剰にフラッディングすることはありません。どうすればいいですか?キューの実装を考えていましたが、その後どこに行けばいいのかわかりません。
私はこのボットにフレームワークを使用していません。また、フレームワークに切り替えたくありません(非常に簡単でない限り)。
もちろん、キューを使用することもできます。
1つのスレッドにキューにデータを入れさせ、別のスレッドにキューからのアイテムを適切なペースで処理させます。これは、古典的な消費者/生産者パターンのインスタンスです。
過度のフラッディングが発生した場合に、キューがすべてのメモリを使い果たしないように注意してください。(たとえば、キューがいっぱいの場合はメッセージをドロップすることができます。)
java.util.concurrentには、おそらく必要なものがあります。たとえば、エグゼキュータまたは単なるBlockingQueue。