<分区>
我是编程新手,对 Java 只有基本概念。对于一个学校项目,我需要一个解决方案来定期(假设每 6 小时一次)执行 Java 程序(类)并从中收集数据。 Java 程序是一个客户端,每 5 分钟收集一次服务器发布的消息。为了解决这个问题,我的第一个想法是 Thread()
和 Runnable()
但就像我说的那样,我只有 Java 的基本概念而且我不知道该怎么做。解决方案也必须使用 Java。如果有人有任何想法,我们将不胜感激,谢谢
PS 抱歉我的英语不好...
<分区>
我是编程新手,对 Java 只有基本概念。对于一个学校项目,我需要一个解决方案来定期(假设每 6 小时一次)执行 Java 程序(类)并从中收集数据。 Java 程序是一个客户端,每 5 分钟收集一次服务器发布的消息。为了解决这个问题,我的第一个想法是 Thread()
和 Runnable()
但就像我说的那样,我只有 Java 的基本概念而且我不知道该怎么做。解决方案也必须使用 Java。如果有人有任何想法,我们将不胜感激,谢谢
PS 抱歉我的英语不好...
最佳答案
你有两个选择:
Timer
DelayQueue
(由 OldCurmudgeon 提议) quartz CRONTRIGGER
检查Quartz Scheduler文档。 ( Here you will find contrigger pattern doc )
在 00:00
、6:00
、12:00
和 18:00
时间执行:
0 0 0/6/12/18 * * ?
每5分钟执行一次
0 0/5 * * * ?
计时器
定义一个线程,每 x 次检查一次以启动进程:
int SIX_HOURS = 1000 * 60 * 60 * 6;
Timer timer = new Timer();
timer.schedule( new TimerTask()
{
public void run() {
// do your work
}
}, 0, SIX_HOURS);
延迟队列
我没有 DelayQueue 的经验, 但你可以找到 OldCurmudgeon示例 placed here , 还有 Jenkov有一个tutorial here ,您可以找到更多示例 here和 here .
关于java - 定期执行java程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32200718/