Java IRC发送队列(Y秒内有X条消息)

Java IRC发送队列(Y秒内有X条消息),java,irc,Java,Irc,我有一种过度思考的倾向,但在任何地方都找不到这方面的任何东西。大多数具有发送限制的IRC网络/通道以一种方式实现它,即在特定时间段内只能发送X条消息(对于out network,5分5秒),这意味着消息之间必须有很长的延迟,或者实现一种方法,确保我发送的信息不会超过这个数量,同时仍能快速发送信息。我该怎么做后者呢 (我是用Java编写的,但问题显然不依赖于此,因此答案中引用的任何代码都可以是任何语言。)将所有传出消息排队。只在您低于限额时发送。如果超过限制,请将它们添加到队列中,并在足够长的时间

我有一种过度思考的倾向,但在任何地方都找不到这方面的任何东西。大多数具有发送限制的IRC网络/通道以一种方式实现它,即在特定时间段内只能发送X条消息(对于out network,5分5秒),这意味着消息之间必须有很长的延迟,或者实现一种方法,确保我发送的信息不会超过这个数量,同时仍能快速发送信息。我该怎么做后者呢


(我是用Java编写的,但问题显然不依赖于此,因此答案中引用的任何代码都可以是任何语言。)

将所有传出消息排队。只在您低于限额时发送。如果超过限制,请将它们添加到队列中,并在足够长的时间后发送它们,以便再次低于限制


如果你只使用你知道的同一个网络,你只需要找出一种方法来检测这些限制或硬编码它们。

我遇到的问题是知道我何时处于限制之下。我当前的队列系统在队列中的所有消息之间有1000毫秒的延迟,这在我只想发送(比如)2条消息的情况下并不理想。您必须在发送最后一条消息时跟踪时间戳。然后,如果您在过去5秒钟内发送了5条以上的消息,您只需查找即可。如果超出限制,请将消息添加到队列,否则发送消息。