我有一个Timer课程,我想安排它运行30分钟,并且它从星期六上午12点到星期日午夜每小时执行一次。
我将如何做到这一点?
感谢。
答案 0 :(得分:0)
java.util.Timer
类没有使用重复任务执行此操作的功能:
Timer
配置为>>停止<<在给定时间运行重复任务简单的解决方案是:
Timer
对象schedule(TimerTask task, Date time)
来安排48个单独的任务,从您需要的范围内的每个小时开始。根据javadoc,Timer
是可扩展的,应该能够有效地处理大量计划任务。
以上内容并未涉及每项任务运行30分钟的要求。目前尚不清楚这实际意味着什么,但是如果你希望任务在不超过 30分钟运行,那么你需要实现一个“看门狗”来中断运行任务的线程时间到了。需要实现该任务以适当地检查和/或处理线程中断。
答案 1 :(得分:-1)
你可以循环运行并在循环中只是睡一小时或者你想要多长时间。会这样的吗?
for(int i = 0; i < 24; i++) {
// do whatever you want to do
try {
// Sleep for an hour
Thread.sleep(6000000);
catch(InterruptedException e) {
e.printStackTrace();
}
}
我可能误解了这个问题......但如果这就是你想要的......那么......是吗?