复杂的MuleSoft Cron时间表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复杂的MuleSoft Cron时间表相关的知识,希望对你有一定的参考价值。

我正在尝试安排一个应用程序每5分钟运行一次,M-F从早上6点到下午6点,每2个小时,M-F从下午6点到早上6点运行。固定轮询频率不允许这种级别的调度,所以我试图使用cron调度程序。

我将时区设置为America/Chicago,将5M表达式设置为0 0/5 6-18 ? * 2-6,并将2H表达式设置为0 0/120 18-23,0-6 ? * 2-6

根据Cron文档和MuleSoft文档,这应该正确设置并且应该工作,并且它在本地工作。当我将它发布到我们的VPC(US-EAST)时,我发现2H调度程序在白天工作到下午4点(中部时间),所以我将表达式更改为:

5M 0 0/5 0-12 ? * 2-6

2H 0 0/120 12-23 ? * 2-6

现在我的5M调度程序在凌晨2:15启动并运行到早上7点。

如何在VPC服务器上设置两个中央时区cron时间表,每隔5分钟运行6 am-6pm M-F,每2小时6 pm-6-M-F运行?

答案

MuleSoft向我确认他们的VPC服务器是基于UTC的,无论您放置在cron scheduler / poll连接器上的时区如何。虽然不理想,但这意味着我需要将调度程序支持6个小时(以使它们达到中央时间)。我怀疑DST会导致时间表向一个方向移动一个小时。

This是学习Mule Quartz / Cron调度程序的好资源。还有一个Free Online cron调度程序格式化程序。

出于我的调度需求,我最终需要总共四个cron调度程序

0 0/5 12-23 ? * 2-6 - 每隔五分钟运行一次M-F,早上6点至下午5点55分(中央)。

0 0 0-11/2 ? * 3-6 - 运行T-F UTC,但实际上每两小时运行一次下午6点至凌晨4点的M-F。您只需要每隔两个小时运行应用程序到凌晨4点,并且五分钟的时间表将在早上6点开始。这里有两点需要注意。首先,为了适当地符文两小时你需要在小时槽上做/2,而不是/120。分钟槽只能处理0-59之间的值。其次,由于从UTC到Central的6小时差异,这些日期将在星期二开始。如果您在周一使用0-11(UTC)小时,应用程序实际上将在周日中部时间的下午6点开始。

这给我们带来了两个额外的时间表,一个是星期一(中央)上午12点到凌晨4点,另一个是星期五(中央)下午6点到12点。

0 0 6-11/2 ? * 2 - 周一上午12点至凌晨4点(中央)每两小时一次。

0 0 0-6/2 ? * 7 - 周五下午6点至12点(中央)每两小时一次。

以上是关于复杂的MuleSoft Cron时间表的主要内容,如果未能解决你的问题,请参考以下文章

Mulesoft 设计中心问题

有没有办法在 Spring Boot 中进行 JSON 转换,类似于 MuleSoft Dataweave 操作?

关于代码片段的时间复杂度

以下代码片段的时间复杂度是多少?

以下代码片段的算法复杂度

代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?