Запустите Mule Quartz с условием

Я хочу запустить кварц мула с условием. Например: В файле свойств мула я ставлю один флаг = вкл. Если этот флаг включен, тогда и только тогда будет запущен планировщик. Если этот флаг выключен, расписание не будет вызываться.

Как я могу сделать это в муле? Пожалуйста помоги


person user3855589    schedule 30.01.2016    source источник


Ответы (2)


Mule подключен к Spring, поэтому приемы/функции, которые вы можете использовать, чтобы сделать некоторые bean-компоненты условными, должны работать и для Mule.

Я бы попробовал следующее:

  • Извлеките определение потока, где конечная точка Quartz запускается в quartz-config-on.xml
  • Создайте пустую XML-конфигурацию Mule с именем quartz-config-off.xml.
  • В вашей основной XML-конфигурации Mule используйте: <import resource="quartz-config-${quartz.flag}.xml"/>, где quartz.flag — это свойство, имеющее значение on или off.
person David Dossot    schedule 30.01.2016
comment
Спасибо за ответ. Но я не могу напрямую импортировать ресурс. Это дает мне ошибку. Как я могу импортировать ресурс?? - person user3855589; 11.02.2016
comment
Это действительно зависит от того, как вы определили свои пространства имен, но это может быть что-то вроде этого: /resources/transaction/transaction-jdbc-single.xml#L12-L14" rel="nofollow noreferrer">github.com/ddossot/mule-in-action-2e/blob/ - person David Dossot; 11.02.2016

Я использовал обходной путь для достижения такого поведения. Я определил коннектор Quartz, в котором выражение cron для его запуска загружается из файла свойств.

Если вы примените выражение к чему-то, что не сработает до 2099 года, это почти эквивалентно отключенному cron.

<quartz:inbound-endpoint cronExpression="${cron1.expression}"
                jobName="scheduler1" doc:name="Scheduler 1">
    <quartz:event-generator-job>
        <quartz:payload>${cron1.request};${cron1.trade.date.offset}/quartz:payload>
    </quartz:event-generator-job>
</quartz:inbound-endpoint>

И файл свойств:

#Scheduler 1 settings
cron1.expression = 3 14 15 9 2 ? 2099
cron1.request = none
cron1.trade.date.offset = 0
person Kristof W.    schedule 24.11.2016