创造一个'冷却''

时间:2016-04-24 02:28:10

标签: java timer command chat

假设你有一个聊天室,人们正在使用命令:

[userA]: !ping (3sec ago)
[BOT]: Pong.
[userB]: !ping (2sec ago)
[BOT]: Pong.
[userA]: !ping (1sec ago)
//do not respond, 10 second cooldown not over

我将如何创建一个不同的冷却时间?对于不同的人使用命令后?我这样做是为了lastUser总是等于使用命令的人的最后一个用户名,这样你就可以在命令响应中对用户做些什么。

我想到了这样的事情:

if(chtBox.command = "!ping"){
>>check if timer with the name/value "lastUser" is active/exists
>>>>if not,
>>>>>>start new 10sec timer with the name/value "lastUser"
>>>>if yes,
>>>>>>ignore command
}

请指导我正确的方向

1 个答案:

答案 0 :(得分:0)

这比Java更像是一个设计问题。

管理一堆计时器并不是可扩展的。

有一个跟踪您上次听到任何客户的时间的集合。

每隔n秒,让一个线程醒来,通过收集,然后开始"冷却"任何在n秒内没有听说过的客户。