我已经制作了IRC机器人,并且遇到了洪水问题。我正在尝试找出一种将消息分隔开的方法,这样,如果10个人都同时执行一条命令,不会过多地淹没机器人。我该怎么做?我当时在考虑实现一个队列,但是我不确定该去哪里。
我没有为此机器人使用任何框架,也不想切换至任何框架(除非极其简单)。
最佳答案
当然,您可以使用队列。
让一个线程将内容放入队列中,让另一个线程以良好的速度处理队列中的项目。这是经典consumer / producer pattern的一个实例。
只要确保在过多的洪泛情况下不要让队列耗尽所有内存即可。 (例如,如果队列已满,您可以仅丢弃消息。)
关于java - 如何预防洪水,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4474499/