CronTriggerFactoryBean не работает с новой версией

Я использую кварц для планирования своей работы (работаю над проектом maven с использованием Spring).

Я обновил кварц до версии 2.3.0 и изменил CronTriggerBean и JobDetailBean на CronTriggerFactoryBean и JobDetailFactoryBean, но с этой конфигурацией он не создает экземпляр задания при каждом запросе, как (cronexpression), он работал с первой конфигурацией (CronTriggerBean).

Должен ли я сделать некоторую реализацию?

кварц-context.xml

<bean id = "jobImportFi01QuartzTrigger"
        class = "org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name = "group" value = "xxx" />
        <property name = "jobDetail" ref = "jobImportFi01Quartz" />
        <property name = "cronExpression" value = "${jobImportFi01.cron.expression}" />
        <property name = "misfireInstructionName"
            value = "MISFIRE_INSTRUCTION_DO_NOTHING" />
    </bean>

    <bean id = "jobImportFi01Quartz"
        class = "org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name = "group" value = "xxx" />
        <property name = "jobClass"
            value = "com.batch.job.timdataimport.quartz.ImportJobDetail" />
        <property name = "description" value = "Fi01Import" />
        <property name = "jobDataAsMap">
            <map>
                <entry key = "jobName" value = "jobImportFi01" />
            </map>
        </property>
    </bean>
0
0
631
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это то, что мы используем с Quartz 2.3.0, и оно работает нормально:

<bean id = "job1" class = "org.quartz.impl.JobDetailImpl">
  <property name = "jobClass" value = "com.quartzdesk.test.quartz.v2.TestJob"/>
  <property name = "group" value = "quartzdesk-test"/>
  <property name = "name" value = "Job1"/>
  <property name = "description"
            value = "Simple test job."/>

  <property name = "durability" value = "true"/>

  <property name = "jobDataMap">
    <bean class = "org.quartz.JobDataMap">
      <constructor-arg>
        <util:map>
          <entry key = "jobKey01" value = "value01"/>
        </util:map>
      </constructor-arg>
    </bean>
  </property>
</bean>

<bean id = "job1Trigger"
      class = "org.quartz.impl.triggers.CronTriggerImpl">
  <property name = "name" value = "Job1Trigger"/>
  <property name = "group" value = "quartzdesk-test"/>
  <property name = "jobName" value = "Job1"/>
  <property name = "jobGroup" value = "quartzdesk-test"/>
  <property name = "description" value = "Cron trigger that fires every 15 minutes."/>
  <property name = "cronExpression" value = "0 1/15 * * * ?"/>

  <property name = "startTime" value = "2016-01-01"/>

  <property name = "calendarName" value = "annualCalendar"/>

  <property name = "jobDataMap">
    <bean class = "org.quartz.JobDataMap">
      <constructor-arg>
        <util:map>
          <entry key = "jobTriggerKey01" value = "value01"/>
        </util:map>
      </constructor-arg>
    </bean>
  </property>
</bean>

спасибо, один вопрос: в вашем классе com.quartzdesk.test.quartz.v2.TestJob вы установили @DisallowConcurrentExecution?

Michael Cauduro 18.01.2019 15:57

Да, именно туда он и относится :)

Jan Moravec 18.01.2019 21:33

Другие вопросы по теме