MuleSoft - จุดสิ้นสุด

จุดสิ้นสุดโดยทั่วไปจะรวมส่วนประกอบเหล่านั้นที่ทริกเกอร์หรือเริ่มต้นการประมวลผลในขั้นตอนการทำงานของแอปพลิเคชัน Mule พวกเขาเรียกว่าSource ใน Anypoint Studio และ Triggersในศูนย์การออกแบบของ Mule จุดสิ้นสุดที่สำคัญอย่างหนึ่งใน Mule 4 คือScheduler component.

ปลายทางของเครื่องมือจัดกำหนดการ

ส่วนประกอบนี้ทำงานบนเงื่อนไขตามเวลาซึ่งหมายความว่าช่วยให้เราสามารถทริกเกอร์โฟลว์เมื่อใดก็ตามที่ตรงตามเงื่อนไขตามเวลา ตัวอย่างเช่นตัวกำหนดตารางเวลาสามารถทริกเกอร์เหตุการณ์เพื่อเริ่มขั้นตอนการทำงานของ Mule ทุกๆ 10 วินาที นอกจากนี้เรายังสามารถใช้นิพจน์ Cron ที่ยืดหยุ่นเพื่อทริกเกอร์ปลายทางของเครื่องมือจัดกำหนดการ

ประเด็นสำคัญเกี่ยวกับเครื่องมือจัดกำหนดการ

ในขณะที่ใช้งาน Scheduler เราจำเป็นต้องดูแลประเด็นสำคัญบางประการตามที่ระบุไว้ด้านล่าง -

  • Scheduler Endpoint ตามโซนเวลาของเครื่องที่ Mule runtime กำลังทำงานอยู่

  • สมมติว่าหากแอปพลิเคชัน Mule ทำงานใน CloudHub ตัวกำหนดเวลาจะทำตามเขตเวลาของภูมิภาคที่ผู้ปฏิบัติงาน CloudHub ทำงานอยู่

  • ในช่วงเวลาใดก็ตามสามารถใช้งานได้เพียงหนึ่งโฟลว์ที่ถูกเรียกโดยจุดสิ้นสุดของเครื่องมือจัดกำหนดการเท่านั้น

  • ในคลัสเตอร์รันไทม์ Mule จุดสิ้นสุดของ Scheduler จะรันหรือทริกเกอร์บนโหนดหลักเท่านั้น

วิธีกำหนดค่าเครื่องมือจัดกำหนดการ

ดังที่ได้กล่าวไว้ข้างต้นเราสามารถกำหนดค่าจุดสิ้นสุดของตัวกำหนดตารางเวลาที่จะเรียกใช้ในช่วงเวลาที่กำหนดหรือเรายังสามารถให้นิพจน์ Cron

พารามิเตอร์ในการกำหนดค่าเครื่องมือจัดกำหนดการ (สำหรับช่วงเวลาคงที่)

ต่อไปนี้เป็นพารามิเตอร์ในการตั้งค่าตัวกำหนดตารางเวลาเพื่อทริกเกอร์โฟลว์ในช่วงเวลาปกติ -

Frequency- โดยพื้นฐานแล้วจะอธิบายว่าความถี่ใดที่จุดสิ้นสุดของตัวกำหนดเวลาจะทำให้เกิดการไหลของล่อ หน่วยเวลาสำหรับสิ่งนี้สามารถเลือกได้จากฟิลด์หน่วยเวลา ในกรณีที่คุณไม่ได้ระบุค่าใด ๆ สำหรับค่านี้จะใช้ค่าเริ่มต้นซึ่งก็คือ 1000 ในอีกด้านหนึ่งหากคุณระบุ 0 หรือค่าลบค่านั้นจะใช้ค่าเริ่มต้นด้วย

Start Delay- เป็นระยะเวลาที่เราต้องรอก่อนที่จะเรียกใช้ขั้นตอนล่อเป็นครั้งแรกเมื่อแอปพลิเคชันเริ่มทำงาน ค่าของการหน่วงเวลาเริ่มแสดงเป็นหน่วยเวลาเดียวกันกับความถี่ ค่าเริ่มต้นคือ 0

Time Unit- อธิบายหน่วยเวลาทั้งความถี่และความล่าช้าในการเริ่มต้น ค่าที่เป็นไปได้ของหน่วยเวลาคือมิลลิวินาทีวินาทีนาทีชั่วโมงวัน ค่าเริ่มต้นคือมิลลิวินาที

พารามิเตอร์เพื่อกำหนดค่าตัวกำหนดตารางเวลา (สำหรับ Cron Expression)

จริงๆแล้ว Cron เป็นมาตรฐานที่ใช้สำหรับอธิบายข้อมูลเวลาและวันที่ ในกรณีที่คุณใช้นิพจน์ Cron ที่ยืดหยุ่นเพื่อสร้างทริกเกอร์ตัวกำหนดเวลาจุดสิ้นสุดของตัวกำหนดเวลาจะติดตามทุกวินาทีและสร้างเหตุการณ์ล่อเมื่อใดก็ตามที่นิพจน์ Quartz Cron ตรงกับการตั้งค่าวันที่เวลา ด้วยนิพจน์ Cron เหตุการณ์สามารถถูกทริกเกอร์เพียงครั้งเดียวหรือในช่วงเวลาปกติ

ตารางต่อไปนี้แสดงการแสดงวันที่ - เวลาของการตั้งค่าที่จำเป็นหกแบบ -

แอตทริบิวต์ ค่า
วินาที 0-59
นาที 0-59
ชั่วโมง 0-23
วันของเดือน 1-31
เดือน 1-12 หรือ ม.ค. - ธ.ค.
วันของสัปดาห์ 1-7 หรือ SUN-SAT

ตัวอย่างบางส่วนของนิพจน์ Quartz Cron ที่สนับสนุนโดย Scheduler Endpoint มีดังต่อไปนี้ -

  • ½ * * * * ? - หมายความว่าตัวกำหนดตารางเวลาทำงานทุกๆ 2 วินาทีของวันทุกวัน

  • 0 0/5 16 ** ? - หมายความว่ากำหนดการทำงานทุกๆ 5 นาทีเริ่มเวลา 16.00 น. และสิ้นสุดเวลา 16:55 น. ทุกวัน

  • 1 1 1 1, 5 * ? - หมายถึงกำหนดการทำงานในวันแรกของเดือนมกราคมและวันแรกของเดือนเมษายนของทุกปี

ตัวอย่าง

รหัสต่อไปนี้จะบันทึกข้อความ“ สวัสดี” ทุกวินาที -

<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>