2010-12-17 9 views
0

私はIRCボットを作ったので、私は洪水の問題に遭遇しました。私はメッセージのスペースを取り除く方法を見つけ出そうとしているので、10人が同時にコマンドを実行しても、ロボットに過剰な洪水は発生しません。どうすればいい?私はキューを実装することを考えていましたが、それ以降どこに行くべきかはわかりません。洪水からの守り方

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

+0

これはスパムではありません。 – geoffspear

+0

私はそれを言い換えてくださいね。私は洪水から守りたい。 – zamN

答えて

2

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

あるスレッドがキューにあるものを置くようにして、別のスレッドがキューからアイテムを素早く処理できるようにします。これは古典的なconsumer/producer patternのインスタンスです。

過剰な洪水が発生した場合に備えて、キューがすべてのメモリを使い果たしていないことを確認してください。キューがいっぱいになった場合にメッセージをドロップすることもできます。

+0

さて、私は一度にいくつかのキューへの追加を管理するつもりです。だから、10人が "hello World!"というチャンネルを送るmy!helloコマンドを実行することに決めました。私はそれを管理できるようにしたいと思います。あなたの例は、私が欲しくないものであるすべてのコマンドの前にそれを遅らせるだけです。サーバー "Hello World!"を送信します。人々が<5行またはそれに沿った何かを要求している場合。 – zamN

0

java.util.concurrentはおそらくあなたが望むものを持っています。エグゼキュータ、またはBlockingQueueなどがあります。

関連する問題