java中的计时器和计时器任务
我想使用Java定时器和TimerTask每天晚上5点做一项工作。 请帮我解决这个问题 我认为以下方法有问题java中的计时器和计时器任务,java,Java,我想使用Java定时器和TimerTask每天晚上5点做一项工作。 请帮我解决这个问题 我认为以下方法有问题 schedule(TimerTask task, Date time) ----只能为第一天指定日期,不能为forthcomingdays指定日期 schedule(TimerTask task, Date firstTime, long period) ----可以给出初始启动时间和执行时间, 这里,如果我在晚上4点开始我的调度程序,那么如何提及下一次执行时间。如果我设置1小时延迟
schedule(TimerTask task, Date time)
----只能为第一天指定日期,不能为forthcomingdays指定日期
schedule(TimerTask task, Date firstTime, long period)
----可以给出初始启动时间和执行时间,
这里,如果我在晚上4点开始我的调度程序,那么如何提及下一次执行时间。如果我设置1小时延迟,它将在每1小时后调用
schedule(TimerTask task, long delay)
--这不适用于根据开始时间进行操作的情况
schedule(TimerTask task, long delay, long period)
--这不适用于根据开始时间进行操作的系统。我建议您切换到非常轻且易于使用的系统
schedule(TimerTask task, long delay, long period)
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);
试一试
更合适的答案是Grooveek的答案 但作为替代方案
import java.awt.Toolkit;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class demo
{
Toolkit toolkit;
Timer timer;
public demo()
{
toolkit = Toolkit.getDefaultToolkit();
timer = new Timer();
timer.schedule(new scheduleDailyTask(), 0, //initial delay
1 * 1000); //subsequent rate
}
class scheduleDailyTask extends TimerTask
{
public void run()
{
Date date = new Date();
if(date.getHours()==5 && date.getMinutes()==0 && date.getSeconds()==0)
{
System.out.println("its 5 O clock");
System.out.println("run the daily schedule method now");
}
}
}
public static void main(String args[]) {
new demo();
}
}
如果我不想要Quartz Cron,如何处理TimerTask的相同情况?????请让我明白。它对工业是免费的还是什么?因为资金对于公司来说很重要。Quartz Scheduler是根据Apache许可证2.0版授权的。此许可证允许您在商业产品中使用它,而无需免费修改。根据您的自由,但在他们的网站上,他们这样说的原因和内容。注册一个免费的30天TrialX uartz调度程序,包括Quartz Where和Quartz Manager,这是基于开源Quartz项目的商业产品,该项目实际上是用于成千上万企业应用程序的Java作业调度程序。填写下表下载Quartz Scheduler、Quartz Where和Quartz Manager,并获得30天试用许可证。。“Quartz Scheduler是根据Apache许可证2.0版获得许可的。”这句话是直接从中复制粘贴的。它是免费的。Terracotta将基于石英构建的Enterprise产品货币化(例如,具有分布式功能的石英企业不是免费的),但石英库是免费的。根据您的说法,我将在很短的时间内运行计时器,它将检查时间,如果时间匹配,那么它将完成任务。修复了我的示例,以便更容易理解。如果您第一次打印,您将看到2013年1月22日星期二17:00:00 EET。