我想每天晚上 5 点使用 Java Timer 和 TimerTask 做一份工作。 请帮我解决这个问题。
我认为以下方法存在问题...
schedule(TimerTask task, Date time)
----只能为第一天指定日期,不能为接下来可用的日子指定日期。
schedule(TimerTask task, Date firstTime, long period)
----可以给出初始开始时间和执行多长时间后, 在这里,如果我在晚上 4 点开始我的调度程序,那么如何提及下一个执行时间。如果我设置 1 小时延迟,它将每隔一小时调用一次。
schedule(TimerTask task, long delay)
--这是不适用的,它将根据开始时间做事。
schedule(TimerTask task, long delay, long period)
--这是不适用的,它将根据开始时间做事。
最佳答案
我建议你切换到Quartz Cron Trigger非常轻便且易于使用
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
//Job1 is scheduled to run everyday evening at 5 O' clock
JobDetail job = newJob(SimpleJob.class)
.withIdentity("job1", "group1")
.build();
CronTrigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0 0 17 * * ?"))
.build();
sched.scheduleJob(job, trigger);
关于java - java中的定时器和TimerTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456064/