0

IRCボットを作成しましたが、フラッディングの問題が発生しました。私はメッセージの間隔を空ける方法を見つけようとしています。そうすれば、10人全員が同時にコマンドを実行しても、ボットが過剰にフラッディングすることはありません。どうすればいいですか?キューの実装を考えていましたが、その後どこに行けばいいのかわかりません。

私はこのボットにフレームワークを使用していません。また、フレームワークに切り替えたくありません(非常に簡単でない限り)。

4

2 に答える 2

1

もちろん、キューを使用することもできます。

1つのスレッドにキューにデータを入れさせ、別のスレッドにキューからのアイテムを適切なペースで処理させます。これは、古典的な消費者/生産者パターンのインスタンスです。

過度のフラッディングが発生した場合に、キューがすべてのメモリを使い果たしないように注意してください。(たとえば、キュ​​ーがいっぱいの場合はメッセージをドロップすることができます。)

于 2010-12-17T20:30:55.747 に答える
0

java.util.concurrentには、おそらく必要なものがあります。たとえば、エグゼキュータまたは単なるBlockingQueue。

于 2010-12-17T21:48:29.593 に答える