我正在运行一个 IRC 机器人,它需要在两个设定的时间之间在聊天中回显一条消息,并且每隔几分钟执行一次:
我尝试这样做:
public void timerTest(int minH,int maxH, int minT){
boolean b = true;
boolean timeout = false;
while(b){
while(!timeout){
if(c.get(Calendar.HOUR_OF_DAY) >= minH && c.get(Calendar.HOUR_OF_DAY) <= maxH && c.get(Calendar.MINUTE) % minT == 0){
sendMessage(channel,spam1.getMessage());
timeout = true;
}
}
if(c.get(Calendar.MINUTE)%minT == 1){
timeout = false;
}
}
}
我通常想在 2 点到 6 点之间每 15 分钟发送一次垃圾邮件。我尝试将其放入无休止的 while 循环中,但不建议这样做。我寻找 Timer 和 TimerTask 但我不知道如何正确执行它。如果有人愿意解释我如何实现这一目标?
谢谢^^
最佳答案
Java Timer
和 TimerTask
并不真正适合像您这样的复杂调度需求。
我建议查看quartz
。它允许您使用非常强大的 cron 表达式进行调度。我认为类似以下表达式可能有用:
*/15 2-6 * * * ?
关于java - java中执行方法检查时间并在特定时间执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5283686/