Как добавить startTime в springframework.scheduling.quartz.CronTriggerFactoryBean?

Нам нужно добавить начальное время для весеннего кварцевого планировщика. Предположим, что нижеприведенный bean-компонент называется CronTriggerFactoryBean. И нам нужно запустить планировщик через 5 дней после запуска сервера.

<bean id = "sampleBean"
class = "org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name = "jobDetail">
  <bean class = "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name = "targetObject" ref = "beanManager"/>
    <property name = "targetMethod" value = "beanMethod"/>
    <property name = "concurrent" value = "false"/>
  </bean>
</property>
<property name = "cronExpression" value = "0 0/30 * ? * SUN-FRI"/>
</bean>

И вышеупомянутая конфигурация планировщика не запускается при запуске сервера приложений. Он работает как

Предположим, сервер запускается в 12:03. Планировщик вызывается на 12:30, 13:00, 13:30, 14:00 ... соответственно.

Но то, что мы хотим, - это запуск сервера в 12:03, что означает, что планировщик должен запускаться один раз во время запуска сервера и в следующий раз тоже 12:33, 13:03, 13:33, 14:03 ...

Будет ли это работать, когда мы устанавливаем начальное время для этого bean-компонента?

0
0
481
1

Ответы 1

Вы должны использовать SimpleTriggerFactoryBean вместо CronTriggerFactoryBean и определить триггер следующим образом:

<bean id = "simpleTrigger"  class = "org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
    <property name = "jobDetail" ref = "simpleJobDetail" />
    <property name = "startDelay" value = "1000" />
    <property name = "repeatInterval" value = "10000" />
</bean>

Это будет запускать задание каждые 10 секунд с начальной задержкой в ​​1 секунду с момента запуска сервера. Теперь отрегулируйте значения в соответствии с вашими требованиями.

Спасибо за ваш ответ. И где я могу ограничить такие дни как ВС-ПТ

Thirunavukkarasu 07.11.2018 10:48

Боюсь, это невозможно с помощью простого триггера.

Monzurul Shimul 07.11.2018 11:04

Ага. Проблема будет в том, что мы не можем добавить дни в SimpleTriggerFactoryBean.

Thirunavukkarasu 07.11.2018 11:17

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