1

我需要在部署后立即轮询,即 0 秒,然后每 45 分钟使用 cron

应该轮询如下:: 00:00, 00:45, 1:30,2:15,3:00 等等

4

7 回答 7

2

为什么必须使用 cron?

在这种情况下,最好的选择是不使用 cron,而是使用 Mule 内置的固定频率调度程序

屏幕截图显示了 Mule 中的内置轮询策略

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

这是配置-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>
...
于 2017-01-11T04:49:29.530 回答
1

我不知道如何在 Mule 中进行投票,但我可以帮助您制定 cron 计划。

Cron 不支持每 45 分钟一次。您必须将其分解为三个 cronjobs:

0,45 0-23/3 * * *

30 1-23/3 * * *

15 2-23/3 * * *

于 2017-01-10T16:40:34.820 回答
0
  1. CRON 表达式每 45 分钟轮询一次,这将解决您的第一个问题。

    0 0/45 * 1/1 * ? *

  2. 据我所知,部署后立即运行一次无法使用“轮询”处理。作为一种解决方法,除了上面的 Poll 组件之外,使用“QUARTZ Inbound Endpoint”创建另一个流,它有一个 repeatCount 属性,您可以将其设置为“零”(这将只运行一次并且不会重复自身)。

于 2017-01-11T01:31:45.617 回答
0

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

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

于 2017-01-11T12:30:18.187 回答
0

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

于 2017-01-11T14:15:02.297 回答
0

每 10 秒运行一次

0/10 * * * * ?

每 45 分钟运行一次

* 0/45 * * * ?
于 2018-02-08T08:28:57.363 回答
-1

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

频率:45 启动延迟为:0

时间单位:分钟

于 2017-05-04T10:17:04.540 回答