Задание планировщика кварца не сохраняется в предоставленной базе данных - PullRequest
0 голосов
/ 18 апреля 2019

Кварц планирует задания должным образом, но не создает записи ни в одной из кварцевых таблиц в моей предоставленной БД. Однако он ищет таблицы в моей предоставленной БД, если я удаляю все кварцевые таблицы и пытаюсь запустить сервер.

Это означает, что каждый раз, когда в памяти используется БД. Причина, по которой я хочу использовать предоставленную базу данных, заключается в возможности возобновления работы после перезапуска сервера приложений. Я планирую работу для запуска каждую минуту. Моя проблема в том, что я не могу понять, что я делаю неправильно

Spring XML:

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="quartzProperties">
        <map>
            <entry key="org.quartz.threadPool.class" value="org.quartz.simpl.SimpleThreadPool" />
            <entry key="org.quartz.threadPool.threadCount" value="2" />
            <entry key="org.quartz.jobStore.isClustered" value="false" />
            <entry key="org.quartz.scheduler.jobFactory.class" value="org.quartz.simpl.SimpleJobFactory" />
            <entry key="org.quartz.jobStore.class" value="org.quartz.impl.jdbcjobstore.JobStoreTX" />
            <entry key="org.quartz.jobStore.driverDelegateClass" value="org.quartz.impl.jdbcjobstore.StdJDBCDelegate" />
            <entry key="org.quartz.jobStore.tablePrefix" value="QRTZ_" />
            <entry key="org.quartz.jobStore.dataSource"  value="myDS" />
            <entry key="org.quartz.dataSource.myDS.driver" value="com.mysql.jdbc.Driver"/>
            <entry key="org.quartz.dataSource.myDS.URL" value="jdbc:mysql://localhost:3306/quartz_demo"/>
            <entry key="org.quartz.dataSource.myDS.user" value="root"/>
            <entry key="org.quartz.dataSource.myDS.password" value="root"/>
            <entry key="org.quartz.dataSource.myDS.maxConnections" value="5"/>
        </map>
    </property>
</bean>

Контроллер покоя:

private JobDetail buildJobDetail() {
    return JobBuilder.newJob(ExploderLoopSchedulerJob.class)
            .withIdentity("exploderLoopJob", "exploderLoop-jobs")
            .withDescription("Send Exploder Loop Job")
            .storeDurably()
            .build();
}

private Trigger buildJobTrigger(JobDetail jobDetail, ZonedDateTime startAt) {
    return TriggerBuilder.newTrigger().
            forJob(jobDetail)
            .withIdentity(jobDetail.getKey().getName(), "exploderLoop-triggers")
            .withDescription("Send Exploder Loop Trigger")
            .startAt(Date.from(startAt.toInstant()))
            .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMinutes(1).repeatForever())
            .build();
}

Ожидаемый результат - запись в quartz_triggers при планировании задания. Фактический результат - нет записи ни в одной из таблиц quartz_, а используется БД в памяти

...