เงื่อนไขเริ่มต้น 3 แบบให้คุณตั้งเวลาการทำงานอัตโนมัติล่วงหน้าได้
เงื่อนไขเริ่มต้นแรก Time.ScheduledTimeEvent,
ช่วยให้คุณตั้งเวลาการทำงานอัตโนมัติให้เริ่มต้นในเวลาที่แม่นยำเพียงครั้งเดียวใน
อนาคต หรือเป็นแบบเป็นประจำตามเวลาจริงหรือเหตุการณ์ที่เกี่ยวข้องกับดวงอาทิตย์
(เช่น พระอาทิตย์ขึ้นหรือตก)
ตัวอย่างเช่น เงื่อนไขเริ่มต้นนี้จะเริ่มการทำงานอัตโนมัติเวลา 22:00 น. ทุกวัน
starter<_>(structure, Time.ScheduledTimeEvent) { parameter(Time.ScheduledTimeEvent.clockTime(LocalTime.of(22, 0, 0, 0))) }
หรือคุณจะระบุเหตุการณ์ที่เกี่ยวข้องกับดวงอาทิตย์แทนเวลาจริงก็ได้ พารามิเตอร์สำหรับเงื่อนไขเริ่มต้นประเภทนี้คือ
SolarTimeStruct
ซึ่งประกอบด้วย
typeซึ่งเป็นSolarTimeType.SunriseหรือSolarTimeType.Sunsetoffsetซึ่งช่วยให้คุณเปลี่ยนเวลาเริ่มต้นเทียบกับเหตุการณ์ที่เกี่ยวข้องกับดวงอาทิตย์ได้ตามระยะเวลาที่ต้องการ ค่าบวกจะทำให้เกิดการหน่วงเวลา หลังจาก เหตุการณ์ที่เกี่ยวข้องกับดวงอาทิตย์ ส่วนค่าลบจะทำให้เงื่อนไขเริ่มต้นทริกเกอร์ ก่อน เหตุการณ์ที่เกี่ยวข้องกับดวงอาทิตย์
ตัวอย่างต่อไปนี้คือเงื่อนไขเริ่มต้นที่จะเริ่มการทำงานอัตโนมัติ 15 นาทีก่อนพระอาทิตย์ขึ้นทุกวัน
starter<_>(structure, Time.ScheduledTimeEvent) { parameter( Time.ScheduledTimeEvent.solarTime( SolarTimeStruct(SolarTimeType.Sunrise, java.time.Duration.ofMinutes(-15)) ) ) }
เงื่อนไขเริ่มต้น 2 รายการที่ 2 คือ เงื่อนไขเริ่มต้นของเหตุการณ์ที่กำหนดเวลาไว้ซึ่งเกิดขึ้นเป็นประจำ ซึ่งช่วยให้คุณ สร้างการทำงานอัตโนมัติที่ทำงานเป็นระยะๆ ตามเกณฑ์ที่เฉพาะเจาะจงมากขึ้น ซึ่งอาจรวมถึงเงื่อนไขตามเวลาและตามปฏิทิน
Time.RecurringClockTimeScheduledEvent
ช่วยให้คุณตั้งเวลาการทำงานอัตโนมัติตามเงื่อนไขเวลาหรือวันที่อย่างน้อย 1 รายการ
เงื่อนไขเริ่มต้นนี้ใช้ไวยากรณ์ที่คล้ายกับที่ยูทิลิตี cron ของ Unix ใช้เพื่อระบุเวลาสำหรับการทำงานอัตโนมัติที่เกิดขึ้นเป็นประจำ
Time.RecurringSolarTimeScheduledEvent
ช่วยให้คุณตั้งเวลาการทำงานอัตโนมัติตามเวลาพระอาทิตย์ขึ้นหรือตก โดยอาจใช้ร่วมกับเงื่อนไขตามปฏิทินก็ได้
นิพจน์ cron
คุณอาจคุ้นเคยกับ cron ซึ่งเป็นคำสั่งที่ใช้ในระบบ Unix และ Linux เพื่อตั้งเวลาให้งานเกิดขึ้นเป็นประจำ
เงื่อนไขเริ่มต้นของเหตุการณ์ที่กำหนดเวลาไว้ซึ่งเกิดขึ้นเป็นประจำจะใช้ไวยากรณ์นิพจน์การตั้งเวลาที่คล้ายกับที่ cron ใช้ และด้วยเหตุนี้ นิพจน์การตั้งเวลาที่ใช้กับเงื่อนไขเริ่มต้นเหล่านี้จึงเรียกว่า นิพจน์ cron
cron มีหลาย "รสชาติ" และมีการเปลี่ยนแปลงไวยากรณ์หลายอย่างในการใช้งานเหล่านี้ นิพจน์ cron
ของเงื่อนไขเริ่มต้นของเหตุการณ์ที่กำหนดเวลาไว้ซึ่งเกิดขึ้นเป็นประจำจะใช้ไวยากรณ์เดียวกับตัวกำหนดเวลา Quartz
ไวยากรณ์นิพจน์ cron ของ Quartz อธิบายไว้ใน เอกสารประกอบของ Quartz's
CronExpression
ตัวอย่าง
ต่อไปนี้เป็นตัวอย่างบางส่วนเพื่อประกอบการอธิบาย
| กรณีการใช้งาน | วินาที | นาที | ชั่วโมง | วันของเดือน | เดือน | วันของสัปดาห์ | ปี |
|---|---|---|---|---|---|---|---|
| เรียกใช้ทุก 24 ชั่วโมง เวลาเที่ยงคืน | 0 |
0 |
0 |
? |
* |
* |
* |
| เรียกใช้เวลา 6:00 น. ทุกวันอังคาร | 0 |
30 |
19 |
? |
* |
3 |
* |
| เรียกใช้ทุกชั่วโมงในเวลา 15 นาทีหลังเริ่มชั่วโมง ในเดือน กุมภาพันธ์ | 0 |
15 |
* |
? |
2 |
* |
* |
| เรียกใช้ 1 ครั้งต่อชั่วโมง | 0 |
0 |
* |
? |
* |
* |
* |
| เรียกใช้ทุก 24 ชั่วโมง เวลาเที่ยงคืน ตั้งแต่เดือนมกราคมถึงมีนาคม ในวันธรรมดาที่ใกล้กับวันที่ 1 ของเดือนมากที่สุด | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
| ในวันพฤหัสบดีที่ 2 ของเดือนกุมภาพันธ์ ทุกชั่วโมงในเวลา 15 นาทีหลังเริ่มชั่วโมง | 0 |
15 |
* |
? |
2 |
5#2 |
* |
| เรียกใช้ทุกชั่วโมงในเวลา 15 นาทีหลังเริ่มชั่วโมง ในวันสุดท้ายของเดือน กุมภาพันธ์ | 0 |
15 |
* |
L |
2 |
? |
* |
| เรียกใช้เวลา 6: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 รายการ
- A
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 *")) }