使用cron

时间:2017-01-10 13:31:59

标签: cron mule mule-component mule-cluster

我需要在部署后立即进行轮询,即0秒,然后使用cron

每45分钟进行一次

应如下调查:: 00:00,00:45,1:30,2:15,3:00等等

7 个答案:

答案 0 :(得分:2)

为什么必须使用cron?

在这种情况下,最好的选择是不要使用cron ,而是使用Mule的内置fixed-frequency scheduler

Screen capture showing the in-built polling strategy within Mule

注意默认延迟是如何" 0"这意味着它将在部署后立即运行,然后每隔45分钟运行一次。

这是configuration-xml:

...
<flow name="polling-frequency-example-flow"
    processingStrategy="synchronous">
    <poll doc:name="poll-every-forty-five-mins">
        <fixed-frequency-scheduler frequency="45" timeUnit="MINUTES"/>
    </poll>
    <!-- Do Something -->
</flow>
...

答案 1 :(得分:1)

我不知道如何在Mule中进行民意调查,但我可以帮助您完成cron计划。

Cron不支持每45分钟一次。你必须把它分成三个cronjobs:

0,45 0-23/3 * * *

30 1-23/3 * * *

15 2-23/3 * * *

答案 2 :(得分:0)

  1. CRON表达每45分钟轮询一次,这将解决你的第一个问题。

    0 0/45 * 1/1 *? *

  2. 部署后立即运行一次不能用&#34; Poll&#34;我所知道的。作为一种解决方法,除了上面的Poll组件之外,使用&#34; QUARTZ Inbound Endpoint&#34;创建另一个流程。它有一个repeatCount属性,您可以将其设置为&#34; Zero&#34;(这将只运行一次并且不会重复自身)。

答案 3 :(得分:0)

Cron表达式(每45分钟):0 0/45 * 1/1 *? *

如果你想每隔45分钟(00:15,01:00这样)运行,请使用石英。 如果您使用轮询操作,它将不会每45分钟运行一次,它将在项目或流程部署时每45分钟运行一次。

答案 4 :(得分:0)

只需使用@Mooz所述的固定频率调度程序构造,然后获取当前时间,检查它是否是星期日,如果是,则不进行处理。 cron表达式并不是真正直接用于处理所有立即运行的约束,相对于开始时间而不是时钟计划的频率,以及即使使用Mule对cron的扩展的日期调度。其他解决方案是使用两个控制器,但这对我来说似乎更清晰。

答案 5 :(得分:0)

每10秒运行一次

0/10 * * * * ?

每45分钟运行一次

* 0/45 * * * ?

答案 6 :(得分:-1)

只需简单地使用固定频率调度程序,而不是使用Cron作业。 设置值如下:

频率:45 开始延迟为:0

时间单位为:分钟