Кварц интегрирован в Spring с SchedulerFactoryBean, но без работы и запускает записи в базе данных - PullRequest
0 голосов
/ 28 апреля 2019

Я пытался запустить кварцевое задание во время запуска приложения.Код выглядит следующим образом:

@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

В конце журнала, как вы можете видеть, была выполнена операция отката.Это все вызвано?У вас есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...