Apache-Camel Quartz simpleTrigger repeatCount и repeatInterval не вызывает событие после первого события триггера, fireNow - PullRequest
0 голосов
/ 02 октября 2019

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

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>

1 Ответ

0 голосов
/ 02 октября 2019

Я думаю, что нашел ответ, 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...