在应用程序启动时,我试图运行石英作业。代码如下:
@Bean
public SchedulerFactoryBean scheduler(DataSource dataSource) {
SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean();
schedulerFactory.setOverwriteExistingJobs(true);
schedulerFactory.setAutoStartup(true);
schedulerFactory.setStartupDelay(20);
schedulerFactory.setTriggers(createTaskTrigger().getObject());
schedulerFactory.setConfigLocation(new ClassPathResource("config/quartz.properties"));
schedulerFactory.setJobFactory(springBeanJobFactory());
schedulerFactory.setDataSource(dataSource);
return schedulerFactory;
}
@Bean
public JobDetailFactoryBean createTaskJobDetail() {
JobDetailFactoryBean factoryBean = new JobDetailFactoryBean();
factoryBean.setJobClass(CreateTaskJob.class);
factoryBean.setDurability(true);
return factoryBean;
}
@Bean
public CronTriggerFactoryBean createTaskTrigger() {
CronTriggerFactoryBean factoryBean = new CronTriggerFactoryBean();
factoryBean.setJobDetail(createTaskJobDetail().getObject());
factoryBean.setCronExpression(createInspectExp);
factoryBean.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW);
return factoryBean;
}
@Bean
public SpringBeanJobFactory springBeanJobFactory() {
AutoWiringSpringBeanJobFactory jobFactory = new
AutoWiringSpringBeanJobFactory();
jobFactory.setApplicationContext(applicationContext);
return jobFactory;
}
我认为应该将一些记录插入数据库表中(qrtz_triggers,qrtz_triggers,qrtz_job_details ...),但实际上没有任何问题,在应用程序控制台上也没有发现错误。
我尝试调试石英源代码,发现所有SQL均已成功执行。
根据数据库(mysql)日志,SQL也已执行。
2019-04-28T10:07:41.292442Z 43 Prepare INSERT INTO QRTZ_TRIGGERS
(SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, JOB_NAME, JOB_GROUP,
DESCRIPTION, NEXT_FIRE_TIME, PREV_FIRE_TIME, TRIGGER_STATE, TRIGGER_TYPE,
START_TIME, END_TIME, CALENDAR_NAME, MISFIRE_INSTR, JOB_DATA, PRIORITY)
VALUES('scheduler', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2019-04-28T10:07:41.783536Z 43 Execute INSERT INTO QRTZ_TRIGGERS
(SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, JOB_NAME, JOB_GROUP,
DESCRIPTION, NEXT_FIRE_TIME, PREV_FIRE_TIME, TRIGGER_STATE, TRIGGER_TYPE,
START_TIME, END_TIME, CALENDAR_NAME, MISFIRE_INSTR, JOB_DATA, PRIORITY)
VALUES('scheduler', 'createTaskTrigger', 'DEFAULT', 'createTaskJobDetail',
'DEFAULT', NULL, 1556446050000, -1, 'WAITING', 'CRON', 1556446039000, 0,
NULL, 1, '', 0)
2019-04-28T10:07:41.800229Z 43 Prepare INSERT INTO QRTZ_CRON_TRIGGERS
(SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, CRON_EXPRESSION, TIME_ZONE_ID)
VALUES('scheduler', ?, ?, ?, ?)
2019-04-28T10:07:41.802850Z 43 Execute INSERT INTO QRTZ_CRON_TRIGGERS
(SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, CRON_EXPRESSION, TIME_ZONE_ID)
VALUES('scheduler', 'createTaskTrigger', 'DEFAULT', '*/15 * * * * ?',
'Asia/Shanghai')
2019-04-28T10:07:42.594220Z 43 Query rollback
如您所见,在日志末尾,已执行了“回滚”操作。这是全部造成的吗?你有什么想法吗?