我已经制作了我的IRC机器人,我遇到了洪水问题。我正在试图找出一种方法来消除这些消息,所以如果10个人同时执行一个命令,它就不会过多地淹没机器人。我该怎么做?我正在考虑实施一个队列,但我不确定在那之后去哪里。
我没有为这个机器人使用任何框架,也不想切换到任何框架(除非它非常容易)。
答案 0 :(得分:2)
当然,你可以使用队列。
让一个线程将东西放在队列中,让另一个线程以很好的速度处理队列中的项目。它是经典consumer / producer pattern的一个实例。
请确保在洪水过度的情况下,不要让你的队列耗尽所有记忆。 (例如,如果队列已满,您可以删除消息。)
答案 1 :(得分:0)
java.util.concurrent可能有你想要的。例如Executor或仅仅是BlockingQueue。