我已经制作了IRC机器人,并且遇到了洪水问题。我试图找出一种方法来泄漏消息,因此,如果10个人都同时执行命令,则不会淹没机器人。我该怎么做?我当时正在考虑实施队列,但我不确定在那之后去哪里。

我没有为此机器人使用任何框架,也不想切换到任何框架(除非它非常简单)。

有帮助吗?

解决方案

当然,您可以使用队列。

让一个线程放在队列上,让另一个线程处理项目以不错的速度从队列中。这是经典的实例 消费者 /生产者模式.

只要确保在过度洪水的情况下,您不要让队列吞噬所有记忆。 (例如,如果队列已满,则可以删除消息。)

其他提示

java.util.concurrent可能有您想要的。例如,执行人或仅是阻止类别。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top