MuleSoft - 端点

端点基本上包括触发或启动 Mule 应用程序工作流程中的处理的组件。它们在 Anypoint Studio 中称为 ,在 Mule 的设计中心中称为 触发器。Mule 4 中的一个重要端点是 调度程序组件

调度程序端点

此组件在基于时间的条件下工作,这意味着,它使我们能够在满足基于时间的条件时触发流程。例如,调度程序可以每隔 10 秒触发一次事件来启动 Mule 工作流程。我们还可以使用灵活的 Cron 表达式来触发 Scheduler Endpoint。

关于 Scheduler 的要点

使用 Scheduler 事件时,我们需要注意以下几点 −

  • Scheduler Endpoint 遵循 Mule 运行时所在机器的时区。

  • 假设 Mule 应用程序在 CloudHub 中运行,Scheduler 将遵循 CloudHub 工作器所在区域的时区。

  • 在任何给定时间,只能有一个由 Scheduler Endpoint 触发的流处于活动状态。

  • 在 Mule 运行时集群中,Scheduler Endpoint 仅在主节点上运行或触发。

配置 Scheduler 的方法

如上所述,我们可以配置一个调度程序端点以固定间隔触发,或者我们也可以给出一个 Cron 表达式。

配置调度程序的参数(用于固定间隔)

以下是设置调度程序以定期触发流的参数 −

频率 − 它基本上描述了调度程序端点将以什么频率触发 Mule 流。可以从时间单位字段中选择此时间单位。如果您不为此提供任何值,它将使用默认值 1000。另一方面,如果您提供 0 或负值,那么它也会使用默认值。

启动延迟 − 这是应用程序启动后我们必须等待的时间,然后才能第一次触发 Mule 流。启动延迟的值以与频率相同的时间单位表示。其默认值为 0。

时间单位 − 它描述了频率和启动延迟的时间单位。时间单位的可能值为毫秒、秒、分钟、小时、天。默认值为毫秒。

配置 Scheduler 的参数(用于 Cron 表达式)

实际上,Cron 是用于描述时间和日期信息的标准。如果您使用灵活的 Cron 表达式来触发 Scheduler,Scheduler Endpoint 会跟踪每一秒,并在 Quartz Cron 表达式与时间日期设置匹配时创建 Mule 事件。使用 Cron 表达式,事件可以仅触发一次或定期触发。

下表给出了六个必需设置的日期时间表达式 −

属性
Seconds 0-59
Minutes 0-59
Hours 0-23
Day of month 1-31
Month 1-12 or JAN-DEC
Day of the week 1-7 or SUN-SAT

Scheduler Endpoint 支持的 Quartz Cron 表达式的一些示例如下 −

  • ½ * * * * ? − 表示调度程序每天每 2 秒运行一次。

  • 0 0/5 16 ** ? − 表示调度程序每天从下午 4 点开始到下午 4:55 结束每 5 分钟运行一次。

  • 1 1 1 1, 5 * ? − 表示调度程序每年 1 月 1 日和 4 月 1 日运行。

示例

以下代码每秒记录一次消息"hi"−

<flow name = "cronFlow" doc:id = "ae257a5d-6b4f-4006-80c8-e7c76d2f67a0">
   <doc:name = "Scheduler" doc:id = "e7b6scheduler8ccb-c6d8-4567-87af-aa7904a50359">
      <scheduling-strategy>
         <cron expression = "* * * * * ?" timeZone = "America/Los_Angeles"/>
      </scheduling-strategy>
   </scheduler>
   <logger level = "INFO" doc:name = "Logger" 
      doc:id = "e2626dbb-54a9-4791-8ffa-b7c9a23e88a1" message = '"hi"'/>
</flow>