Apache-Camel Quartz simpleTrigger RepeatCount и RepeatInterval не запускает событие после первого события триггера, fireNow

Я использую компонент верблюжьего кварца с simpleTrigger, потому что мне нужно запускать сейчас при запуске, а затем каждые 12 часов. У меня есть 5 минут в тесте ниже. Синтаксис простого триггера

quartz://timerName?options
quartz://groupName/timerName?options

как это работает, есть база данных, которая загружается и создается экземпляр singleton, когда база данных загружается и становится доступной, она запускает указанный ниже маршрут. этот маршрут должен запускаться, он выполняет задание при запуске один раз, а затем на каждом интервале, вот где он терпит неудачу, он не выдает другой триггер для интервала.

как я вижу это fireNow=true, запускает маршрут при запуске

trigger.repeatInterval=300 establishes the period/interval between triggers
trigger.repeatCount=1  will allow 1 trigger to occur between repeatIntervals.

Он запускается, срабатывает Теперь первый триггер, но после этого он не запускает другое событие???

Что я делаю не так или неправильно понимаю? Спасибо за помощь.

fireNow=true&trigger.repeatInterval=300&trigger.repeatCount=1"

мой код:

<route autoStartup="false" id="get.custkeys">
    <from id="get.custkeys" uri="quartz://autoTokenService/getcustkey?fireNow=true&amp;trigger.repeatInterval=300&amp;trigger.repeatCount=1"/>
    <process id="get.custkeys.rte" ref="tokenListLookupProcessor"/>
    <split id="splitcustkey">
        <tokenize token=","/>
        <log id="sck1" loggingLevel="INFO" message="Custkey Requesting Token: ${body}"/>
        <process id="supKey" ref="setUpKeysProcessor"/>
        <throttle id="custkey_throttle" timePeriodMillis="1000">
            <constant>1</constant>
            <to id="getKeys" uri="seda:processCustKeys"/>
        </throttle>
    </split>
</route>

person GLMills    schedule 01.10.2019    source источник


Ответы (1)


Я думаю, что нашел ответ, trigger.repeatCount=-1 позволит повторению события триггера. также, trigger.repeatInterval находится в миллисекундах.

ниже, запускает событие триггера при запуске. затем после repeatInterval событие триггера срабатывает снова. как и ожидалось.

<route autoStartup="false" id="get.custkeys">
    <from id="get.custkeys" uri="quartz://autoTokenService/getcustkey?fireNow=true&amp;trigger.repeatInterval=120000&amp;trigger.repeatCount=-1&amp;trigger.misfireInstruction=2"/>
    <process id="get.custkeys.rte" ref="tokenListLookupProcessor"/>
    <split id="splitcustkey">
        <tokenize token=","/>
        <log id="sck1" loggingLevel="INFO" message="Custkey Requesting Token: ${body}"/>
        <process id="supKey" ref="setUpKeysProcessor"/>
        <throttle id="custkey_throttle" timePeriodMillis="1000">
            <constant>1</constant>
            <to id="getKeys" uri="seda:processCustKeys"/>
        </throttle>
    </split>
</route>
person GLMills    schedule 01.10.2019
comment
в то время как -1 действительно правильно, я думаю, что более явное значение SimpleTrigger.REPEAT_INDEFINITELY, как написано в quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/ (по крайней мере, когда верблюд написан на java, а не на xml) - person Vito De Tullio; 29.04.2020