如何在固定间隔后运行驼峰计时器,但仅在给定的时间范围内运行

时间:2016-07-25 10:42:11

标签: java apache-camel

我写了一个apache定时器,每隔5分钟运行一次。但现在我只需要从早上8点到晚上10点运行它。 我怎样才能做到这一点?我没有在apache camel文档中找到任何这样的内容。

<route id="transactionHeath" startupOrder="1">
        <from uri="timer:transactionHeath?delay=1000&amp;fixedRate=true&amp;period=300s" />
//logic
</route>

1 个答案:

答案 0 :(得分:2)

查看http://camel.apache.org/cronscheduledroutepolicy.html,您可以在此处配置基于石英的政策

<bean id="startPolicy" class="org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy">
    <property name="routeStartTime" value="0 0/5 8-22 ? * *"/>
</bean>

<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route id="testRoute" routePolicyRef="startPolicy" autoStartup="false">
        <from uri="direct:start"/>
        <to uri="mock:success"/>
    </route>
</camelContext>