Mulesoft 简明教程

MuleSoft - Endpoints

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

Scheduler Endpoint

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

Important points about Scheduler

在使用调度程序事件时,我们需要考虑以下一些重要事项:

  1. 调度程序端点遵循 Mule 运行时正在运行的机器的时区。

  2. 假设 Mule 应用程序在 CloudHub 中运行,则调度程序将遵循 CloudHub 工作程序正在运行的区域的时区。

  3. 在任何给定时间,只可以激活一个由调度程序端点触发的流。

  4. 在 Mule 运行时集群中,调度程序端点仅在主节点上运行或触发。

Ways to configure a Scheduler

如上所述,我们可以配置调度程序端点以在固定时间间隔触发,或者我们还可以提供 Cron 表达式。

Parameters to configure a Scheduler (For Fixed Interval)

以下是要在常规时间间隔触发流的调度程序的参数:

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

Start Delay - 这是应用程序启动后第一次触发 Mule 流之前我们必须等待的时间量。启动延迟的值以与频率相同的时间单位表示。它的默认值为 0。

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

Parameters to configure a Scheduler (For Cron Expression)

实际上,Cron 是用于描述时间和日期信息的标准。如果您使用灵活的 Cron 表达式来使调度触发器触发,则调度程序端点将跟踪每秒,并在 Quartz Cron 表达式与时间日期设置相匹配时创建一个 Mule 事件。使用 Cron 表达式,可以一次触发事件或在常规时间间隔触发。

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

Attribute

Value

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

以下是一些由调度程序端点支持的 Quartz Cron 表达式的示例:

  1. ½ * * * * ? - 表示调度程序每天每 2 秒运行一次。

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

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

Example

以下代码每秒钟记录一次消息“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>