这应该是非常直接的,但我看不到任何工作被执行.我在任务的execute()方法上有一个断点,没有任何线程到达那里.
我没有弄到什么问题.
工作
class Printer implements Job{
public Printer(){
System.out.println("created printer");
}
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("hi" + context.getFireTime());
}
}
主要课程
class MyClass {
public static void main(String[] args) throws Throwable {
Scheduler s = StdSchedulerFactory.getDefaultScheduler();
JobDetail job = newJob(Printer.class).build();
CronTrigger trigger =
newTrigger()
.withIdentity("a", "t")
.withSchedule(cronSchedule("0/5 * * * * ?").inTimeZone(TimeZone.getDefault()))
.forJob(job).build();
s.scheduleJob(job, trigger);
// This prints the right date!
System.out.println(trigger.getNextFireTime());
s.start();
}
}
编辑:我发现我没有quartz.property文件,因此有可能没有创建石英线程池.因此,在documentation中读取时,我使用StdSchedulerFactory替换了以下代码:
DirectSchedulerFactory.getInstance().createVolatileScheduler(10);
Scheduler s = DirectSchedulerFactory.getInstance().getScheduler();
你猜怎么着?还没有运气.同样的效果.应用程序保持活着,触发不触发.