定期执行 java 程序
Executing java program periodically
我是编程菜鸟,只有Java的基本概念。对于一个学校项目,我需要一个解决方案来定期(假设每 6 小时一次)执行 Java 程序 (class) 并从中收集数据。 Java 程序是一个客户端,每 5 分钟收集一次服务器发布的消息。为了解决这个问题,我的第一个想法是 Thread()
和 Runnable()
但就像我说的,我只有 Java 的基本概念而且我不知道该怎么做。解决方案也必须在 Java 中。如果有人有任何想法,我们将不胜感激,谢谢
PS 抱歉我的英语不好...
你有两个选择:
- Quartz Scheduler
- 手动编程
Timer
- 定义一个
DelayQueue
(as proposed by OldCurmudgeon)
石英 CRONTRIGGER
检查 Quartz Scheduler 文档。 (在这里您可以找到触发模式文档)
在 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, but you can find OldCurmudgeon example , also Jenkov has a tutorial here, and you can find more examples here and here.
的经验
我是编程菜鸟,只有Java的基本概念。对于一个学校项目,我需要一个解决方案来定期(假设每 6 小时一次)执行 Java 程序 (class) 并从中收集数据。 Java 程序是一个客户端,每 5 分钟收集一次服务器发布的消息。为了解决这个问题,我的第一个想法是 Thread()
和 Runnable()
但就像我说的,我只有 Java 的基本概念而且我不知道该怎么做。解决方案也必须在 Java 中。如果有人有任何想法,我们将不胜感激,谢谢
PS 抱歉我的英语不好...
你有两个选择:
- Quartz Scheduler
- 手动编程
Timer
- 定义一个
DelayQueue
(as proposed by OldCurmudgeon)
石英 CRONTRIGGER
检查 Quartz Scheduler 文档。 (在这里您可以找到触发模式文档)
在 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, but you can find OldCurmudgeon example