Я пытался запустить кварцевое задание во время запуска приложения.Код выглядит следующим образом:
@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
В конце журнала, как вы можете видеть, была выполнена операция отката.Это все вызвано?У вас есть идеи?