เงื่อนไขเริ่มต้น 3 รายการที่แตกต่างกันช่วยให้คุณกำหนดเวลาการทำงานอัตโนมัติล่วงหน้าได้ ดังนี้
รายการแรก Time.ScheduledTimeEvent
ช่วยให้คุณกำหนดเวลาการทำงานอัตโนมัติให้เริ่มต้นในเวลาที่แน่นอนในอนาคต หรือตามช่วงเวลาที่เกิดซ้ำ โดยอิงตามเวลาของนาฬิกาหรือเหตุการณ์เกี่ยวกับดวงอาทิตย์ (เช่น พระอาทิตย์ขึ้นหรือตก)
ตัวอย่างเช่นเงื่อนไขเริ่มต้นนี้จะเริ่มต้นการทำงานอัตโนมัติเวลา 22:00 น. ของทุกวัน
starter<_>(structure, Time.ScheduledTimeEvent) { parameter(Time.ScheduledTimeEvent.clockTime(LocalTime.of(22, 0, 0, 0))) }
หรือจะระบุเหตุการณ์ตามเวลาสุริยคติแทนเวลาตามนาฬิกาก็ได้ พารามิเตอร์สําหรับเงื่อนไขเริ่มต้นประเภทนี้คือ SolarTimeStruct
ซึ่งประกอบด้วย
type
ซึ่งอาจเป็นSolarTimeType.Sunrise
หรือSolarTimeType.Sunset
offset
ซึ่งช่วยให้คุณเลื่อนเวลาเริ่มต้นตามเหตุการณ์บนดวงอาทิตย์ได้ ค่าบวกจะทำให้เกิดความล่าช้าหลังจากเหตุการณ์จากดวงอาทิตย์ และค่าลบจะทำให้เงื่อนไขเริ่มต้นทริกเกอร์ก่อนเหตุการณ์จากดวงอาทิตย์
ตัวอย่างต่อไปนี้คือเงื่อนไขเริ่มต้นที่เริ่มการทำงานอัตโนมัติ 15 นาทีก่อนพระอาทิตย์ขึ้นทุกวัน
starter<_>(structure, Time.ScheduledTimeEvent) { parameter( Time.ScheduledTimeEvent.solarTime( SolarTimeStruct(SolarTimeType.Sunrise, java.time.Duration.ofMinutes(-15)) ) ) }
เงื่อนไขเริ่มต้น 2 รายการถัดไปคือเงื่อนไขเริ่มต้นเหตุการณ์ที่กำหนดเวลาไว้ซึ่งเกิดซ้ำ ซึ่งช่วยให้คุณสร้างการทำงานอัตโนมัติที่ทำงานเป็นระยะๆ ตามเกณฑ์ที่เฉพาะเจาะจงมากขึ้น ซึ่งอาจรวมถึงเงื่อนไขตามเวลาและปฏิทิน
Time.RecurringClockTimeScheduledEvent
ให้คุณตั้งเวลาการทำงานอัตโนมัติตามเงื่อนไขเวลาหรือวันที่อย่างน้อย 1 รายการ
เงื่อนไขเริ่มต้นนี้ใช้ไวยากรณ์ที่คล้ายกับไวยากรณ์ที่ยูทิลิตี cron
ของ Unix ใช้เพื่อระบุกําหนดเวลาสําหรับการทำงานอัตโนมัติที่เกิดซ้ำ
Time.RecurringSolarTimeScheduledEvent
ให้คุณกำหนดเวลาการทำงานอัตโนมัติตามเวลาพระอาทิตย์ขึ้นหรือตกได้ (ไม่บังคับ) ร่วมกับเงื่อนไขตามปฏิทิน
นิพจน์ cron
คุณอาจคุ้นเคยกับ cron
ซึ่งเป็นคําสั่งที่ใช้ในระบบ Unix และ Linux เพื่อกําหนดเวลางานที่เกิดซ้ำ
ตัวเริ่มต้นกิจกรรมที่กำหนดเวลาไว้ที่เกิดซ้ำจะใช้ไวยากรณ์นิพจน์การกำหนดเวลาที่คล้ายกับที่ใช้โดย cron
ด้วยเหตุนี้ นิพจน์การกำหนดเวลาที่ใช้กับเงื่อนไขเริ่มต้นเหล่านี้จึงเรียกว่านิพจน์ cron
cron
มี "รูปแบบ" ที่แตกต่างกันหลายรูปแบบ และรูปแบบคำสั่งที่หลากหลายในการใช้งานเหล่านี้ นิพจน์เงื่อนไขเริ่มต้นของเหตุการณ์ที่กำหนดเวลาไว้ซึ่งเกิดซ้ำ cron
ใช้ไวยากรณ์เดียวกับเครื่องมือกำหนดเวลา Quartz
ไวยากรณ์นิพจน์ cron
ของ Quartz อธิบายไว้ในเอกสารประกอบของ CronExpression
ของ Quartz
ตัวอย่าง
โปรดดูตัวอย่างต่อไปนี้
กรณีการใช้งาน | วินาที | นาที | ชั่วโมง | Day-of-Month | เดือน | วันของสัปดาห์ | ปี |
---|---|---|---|---|---|---|---|
เรียกใช้ทุก 24 ชั่วโมงตอนเที่ยงคืน | 0 |
0 |
0 |
? |
* |
* |
* |
เรียกใช้เวลา 06:00 น. ทุกวันอังคาร | 0 |
30 |
19 |
? |
* |
3 |
* |
เรียกใช้ตอน 15 นาทีหลังจากทุกชั่วโมงตลอดเดือนกุมภาพันธ์ | 0 |
15 |
* |
? |
2 |
* |
* |
เรียกใช้ทุกชั่วโมง | 0 |
0 |
* |
? |
* |
* |
* |
ทำงานทุก 24 ชั่วโมง เวลาเที่ยงคืน ตั้งแต่เดือนมกราคมถึงเดือนมีนาคม ในวันธรรมดาที่ใกล้กับวันที่ 1 ของเดือนมากที่สุด | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
ในวันพฤหัสบดีที่ 2 ของเดือนกุมภาพันธ์ ทุกๆ 1 ชั่วโมง เวลา 15 นาทีผ่าน | 0 |
15 |
* |
? |
2 |
5#2 |
* |
ทำงานทุกชั่วโมงที่ 15 นาทีผ่านไปแล้ว ในวันสุดท้ายของเดือนกุมภาพันธ์ | 0 |
15 |
* |
L |
2 |
? |
* |
ทำงานในเวลา 06:00 น. ทุกวันอังคารและพฤหัสบดี | 0 |
30 |
19 |
? |
* |
3,5 |
* |
RecurringClockTimeScheduledEvent
ในเงื่อนไขเริ่มต้น RecurringClockTimeScheduledEvent
ระบบจะกําหนดสตริงนิพจน์ cron
ให้กับช่อง Time.RecurringClockTimeScheduledEvent.cronExpression
ต่อไปนี้คือตัวอย่างRecurringClockTimeScheduledEvent
เงื่อนไขเริ่มต้นที่จะเริ่มการทำงานอัตโนมัติเวลา 20:00 น. ทุกวันพุธของเดือนเมษายน
starter<_>(structure, event = Time.RecurringClockTimeScheduledEvent) { parameter(Time.RecurringClockTimeScheduledEvent.cronExpression("0 0 20 ? 4 4 *")) }
RecurringSolarTimeScheduleEvent
เงื่อนไขเริ่มต้น RecurringSolarTimeScheduleEvent
มีพารามิเตอร์ 2 รายการ ได้แก่
- ก
SolarTimeStruct
cronExpression
: ชุดย่อยของนิพจน์cron
ที่มีเฉพาะช่องวันของเดือน เดือน วันของสัปดาห์ และปี เวลาตามดวงอาทิตย์จะกำหนดเวลาที่แน่นอนที่การทำงานอัตโนมัติจะเริ่มขึ้น ดังนั้นจึงไม่มีช่องวินาที นาที และชั่วโมง
ตัวอย่างต่อไปนี้คือเงื่อนไขเริ่มต้นที่ทำให้การทำงานอัตโนมัติเริ่มต้นขึ้น 1 ชั่วโมงหลังจากพระอาทิตย์ขึ้นทุกๆ วันพุธของเดือนเมษายน
starter<_>(structure, event = Time.RecurringSolarTimeScheduledEvent) { parameter( Time.RecurringSolarTimeScheduledEvent.solarTime( TimeTrait.SolarTimeStruct(SolarTimeType.Sunrise, Duration.ofHours(1)) ) ) parameter(Time.RecurringSolarTimeScheduledEvent.cronExpression("? 4 4 *")) }