我卡与尝试使用Spring 2.5的&石英火计划任务每分钟1.6.2石英工作没有得到执行
显然豆被启动,并很好地打印出“工作正常”来std out, 但作业似乎没有得到执行 - 没有字符串打印出日志 (没有“hello quartz”出现在输出中)。
我的XML文件是:
<bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="autoStartup">
<value>true</value>
</property>
</bean>
<bean id="UpdateDBWatchdog" class="com.db.update.task.watchdog.UpdateDBWatchdog"
lazy-init="false" init-method="init">
<constructor-arg ref="scheduler" />
</bean>
我的代码是:
import org.quartz.CronExpression;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
public class UpdateDBWatchdog {
private Scheduler scheduler;
public UpdateDBWatchdog(Scheduler scheduler) {
this.scheduler = scheduler;
}
public void init() {
try {
CronTrigger ct = new CronTrigger();
ct.setName("dummyTriggerName");
String expression = "* * * * * ?";
boolean valid = CronExpression.isValidExpression(expression);
if (valid) {
ct.setCronExpression(expression);
} else {
throw new RuntimeException();
}
JobDetail job = new JobDetail();
job.setName("dummyJobName");
job.setJobClass(HelloJob.class);
scheduler.scheduleJob(job, ct);
scheduler.start();
System.out.println("Works fine!");
} catch (Exception e) {
e.printStackTrace();
}
}
private class HelloJob implements Job {
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("Hello Quartz!");
}
}
}
你有没有试过不同的表情?像'0 * * * *?'。 – mdrg
您总是尝试创建一个服务并添加一个@schedule注释,它更加简单,并且可以使用属性持有者通过fixeddelay或cron表达式进行配置。 – vzamanillo
@mdrg是的,我尝试了不同的你提到的那个似乎每小时执行 – tania