การแนะนำ
Quarzt เป็นโครงการโอเพ่นซอร์สที่ดำเนินงานเป็นประจำในโครงการ ควอตซ์เป็นโครงการโอเพ่นซอร์สอื่นในสาขาการจัดตารางงาน มันสามารถรวมกับแอปพลิเคชัน J2EE และ J2SE หรือใช้แยกต่างหาก ที่นี่เราแนะนำตัวอย่างของการรวมเข้ากับฤดูใบไม้ผลิ
เนื่องจากฤดูใบไม้ผลิได้รวม Quarzt เราจึงต้องกำหนดค่าเท่านั้น
ดาวน์โหลดแพ็คเกจ JAR
คุณสามารถดาวน์โหลดแพ็คเกจ JAR ได้โดยตรงได้ที่ http://www.quartz-scheduler.org/ เว็บไซต์ทางการของ Quarzt
มันสามารถสร้างผ่าน Maven อย่าลืมแนะนำขวดที่จำเป็นสำหรับฤดูใบไม้ผลิ
<!-แนะนำการพึ่งพาที่สอดคล้องกันของควอตซ์-> <การพึ่งพา> <roupId> org.quartz-scheduler </groupId> <ArtifactId> quartz </artifactid> <persion> 2.2.3 </เวอร์ชัน> </การพึ่งพา <Sersion> 2.2.3 </Sention> </derctency>
แนวคิด
คลาสงาน: นั่นคือคลาสที่ต้องใช้การดำเนินการรหัสในช่วงเวลาปกติ
JobDetail: รายละเอียดของการกำหนดค่าคลาสงานนั่นคือวิธีการฉีดคลาสงานและการระบุคลาสงานเป็นงานที่สามารถดำเนินการได้ซึ่งอาจเป็นสถานะของตัวเอง
MyTrigger: ทริกเกอร์แสดงถึงการกำหนดค่าของพารามิเตอร์การตั้งเวลาโดยกำหนดค่าเวลาการโทร
Scheduler: เป็นคอนเทนเนอร์ Scheduler ซึ่งสามารถเก็บ JobDetails และทริกเกอร์ได้มากมาย เมื่อคอนเทนเนอร์เริ่มต้นงานแต่ละงานจะถูกดำเนินการทีละขั้นตอนโดยอัตโนมัติตามทริกเกอร์
วิธีการกำหนดค่า
ก่อนเขียนคลาสงาน
คลาสสาธารณะ myjob {งานโมฆะสาธารณะ () {system.out.println (ใหม่ simpledateFormat ("yyyy-mm-dd hh: mm: ss"). รูปแบบ (วันที่ใหม่ ()) + ": การดำเนินการงาน"); -จากนั้นสปริงเพื่อกำหนดค่าถั่วของคลาสงาน
<bean id = "myjob" />
กำหนดค่า JobDetail การฉีดคลาสงานและเมธอดงาน
<bean id = "jobdetail"> <!-การฉีดวัตถุเป้าหมาย-> <property name = "targetObject" ref = "myjob"/> <!-วิธีการฉีดเป้าหมาย-> <property name = "targetMethod" value = "Job"/> </ebean>
กำหนดค่าทริกเกอร์
<!-กำหนดค่าทริกเกอร์-> <bean id = "mytrigger"> <!-การฉีดรายละเอียดงานวัตถุ-> <property name = "jobdetail" ref = "JobDetail"/> <! ข้าวโพดจะอยู่รอดใน </property> ต่อไปนี้ </ebean>
ในที่สุดก็กำหนดค่าโรงงาน Dispatch และฉีดทริกเกอร์ที่กำหนดค่าไว้
<!-กำหนดค่าโรงงาน Dispatch-> <bean id = "SchedulerFactoryBean"> <!-Trigger Inject-> <property name = "Triggers"> <list> <ref bean = "mytrigger"
ณ จุดนี้การกำหนดค่าจะเสร็จสมบูรณ์และสามารถดำเนินการตามกำหนดเวลาได้
ผลการดำเนินการ
การแสดงออกของ cron
ข้าวโพดใช้เพื่อควบคุมเวลาการตั้งเวลาของงานและกำหนดค่าในทริกเกอร์ ต่อไปนี้เป็นไวยากรณ์พื้นฐานของนิพจน์ข้าวโพด หากดูซับซ้อนเกินไปเครื่องกำเนิดไวยากรณ์ข้าวโพดจะมีให้ในอินเทอร์เน็ต http://cron.qqe2.com/ มันสามารถสร้างนิพจน์ข้าวโพดโดยอัตโนมัติโดยการระบุเงื่อนไข
ด้านล่างนี้เป็นความหมายที่แสดงโดยเจ็ด *
ASTERISK: * แสดงถึงเวลาใดก็ได้ซึ่งบ่งชี้ว่าคุณต้องการรวมค่าทางกฎหมายทั้งหมดในฟิลด์นี้
* * * * * * หมายความว่ามันจะทริกเกอร์ทุกช่วงเวลา
0 * 17 * * ? : สร้างแรงบันดาลใจให้ทริกเกอร์ทุกนาทีตั้งแต่ 17.00 น. ถึง 17:59 น. ทุกวัน มันหยุดเวลา 17:59 น. เพราะค่าคือ 17 ในโดเมนชั่วโมงเวลา 18.00 น. ชั่วโมงจะกลายเป็น 18 ดังนั้นฉันจึงไม่สนใจทริกเกอร์นี้จนถึง 17.00 น. ในวันถัดไป
เครื่องหมายคำถาม (?):? สัญญาณสามารถใช้ได้เฉพาะในโดเมนรายวันและรายสัปดาห์เท่านั้น แต่ไม่สามารถใช้งานได้พร้อมกันในโดเมนทั้งสองนี้ คุณคิดได้ไหม ตัวละครคือ "ฉันไม่สนใจว่าจะมีค่าอะไรอยู่ในสนาม" สิ่งนี้แตกต่างจากเครื่องหมายดอกจันซึ่งบ่งบอกถึงค่าทุกค่าในฟิลด์ - หมายความว่าคุณไม่ได้ระบุค่าสำหรับฟิลด์นี้ หากคุณระบุค่าสำหรับหนึ่งในสองฟิลด์นี้คุณต้องใส่ A? ในค่าคำอื่น ๆ
0 10,44 14 ? 3 WEB : ถูกกระตุ้นเวลา 14:10 น. และ 14:44 น. ทุกวันพุธในเดือนมีนาคม
เครื่องหมายจุลภาค (,): ใช้เพื่อระบุรายการค่าไปยังฟิลด์ ตัวอย่างเช่นการใช้ค่า 0,15,30,45 ในฟิลด์ที่สองหมายความว่าทริกเกอร์จะถูกกระตุ้นทุก 15 วินาที
0 0,15,30,45 * * * ? : ทริกเกอร์จะถูกกระตุ้นทุกไตรมาสของชั่วโมง
backslash (/): (/) ใช้สำหรับตารางเวลาที่เพิ่มขึ้น เราเพิ่งใช้เครื่องหมายจุลภาคเพื่อแสดงการเพิ่มขึ้นทุก ๆ 15 นาที แต่เรายังสามารถเขียนเป็น 0/15
0/15 0/30 * * * ? : ทริกเกอร์จะถูกกระตุ้นทุก ๆ 15 วินาทีทั้งชั่วโมงและครึ่งคะแนน
คะแนนปานกลาง (-): คะแนนปานกลาง (-) ใช้เพื่อระบุช่วง ตัวอย่างเช่น 3-8 ในโดเมนชั่วโมงหมายถึง "3, 4, 5, 6, 7 และ 8 คะแนน" ค่าของโดเมนไม่อนุญาตให้ทำการย้อนกลับดังนั้นค่าเช่น 50-10 ไม่อนุญาตให้ใช้
0 45 3-8 ? * * :: ทริกเกอร์จาก 3 โมงเช้าถึง 45 น. เวลา 8.00 น.
ตัวอักษร (l): l หมายถึงค่าสุดท้ายที่อนุญาตในฟิลด์ ได้รับการสนับสนุนโดยโดเมนรายวันและรายสัปดาห์เท่านั้น เมื่อใช้ในโดเมนวันแสดงถึงวันสุดท้ายของเดือนที่ระบุไว้ในโดเมนเดือน เมื่อตัวอักษร L ถูกใช้ในโดเมนสัปดาห์ซึ่งระบุวันสุดท้ายของสัปดาห์ซึ่งก็คือวันเสาร์ (หรือหมายเลข 7) คุณสามารถใช้หมายเลขเพื่อเชื่อมต่อ L เพื่อเป็นตัวแทนของสัปดาห์สุดท้ายของเดือน X
0 0 8 L * ? : ทริกเกอร์เวลา 8:00 น. ในวันสุดท้ายของแต่ละเดือน
0 59 23 ? * L : ทริกเกอร์เวลา 11:59 น. ในวันเสาร์สุดท้ายของแต่ละเดือน
0 0 12 ? * 2L : วันจันทร์สุดท้ายของแต่ละเดือนทริกเกอร์ (จำนวนเชื่อมต่อกับ L เพื่อเป็นตัวแทนของสัปดาห์สุดท้ายของเดือน x)
ตัวอักษร (W): วันธรรมดา (วันจันทร์ถึง-ฟรี) และสามารถใช้ในโดเมนรายวันเท่านั้น มันถูกใช้เพื่อระบุวันธรรมดาที่ใกล้เคียงที่สุดในวันที่กำหนด
เครื่องหมายแฮ็ค ( #): ตัวอักษร # สามารถใช้ในโดเมนอุปกรณ์ต่อพ่วงเท่านั้น มันถูกใช้เพื่อระบุวันของสัปดาห์ในเดือนที่กำหนด ตัวอย่างเช่นหากคุณระบุมูลค่าของฟิลด์รายสัปดาห์เป็น 6 #3 นั่นหมายถึงวันศุกร์ที่สามของเดือนที่หนึ่ง (6 = วันศุกร์ #3 หมายถึงสัปดาห์ที่สามของเดือน)
ตัวอย่าง
"0012 **?" ทริกเกอร์เวลา 12.00 น. ทุกวัน "01510? **" กระตุ้นเวลา 10:15 น. ทุกวัน "01510 **?" ทริกเกอร์เวลา 10:15 น. ทุกวัน "01510 **?*" กระตุ้นเวลา 10:15 น. ทุกวัน "01510 **? 2005" ถูกกระตุ้นเวลา 10:15 น. ทุกวัน "0*14 **?" กระตุ้นเวลา 10:15 น. ทุกวันในปี 2548 เวลา 14:59 น. ทุกวัน "00/514 **?" ทริกเกอร์เวลา 14:00 น. ทุกวันตั้งแต่ 14:00 น. ถึง 14:55 น. ทุกวัน "00/514,18 **?" ทริกเกอร์เวลา 14:00 น. ทุกวันตั้งแต่ 14:00 น. ถึง 14:55 น. และทุก ๆ 5 นาทีทุกวันตั้งแต่ 18:55 น. และทุก ๆ 18:55 น. ถึง 18:55 น. ทุกวันทุก ๆ 1 นาทีเรียกโดย "010,4414? 3wed" ในวันพุธที่ 2:10 "015 น. ในวันที่ 15 ของเดือน" "01510L*?" "015 น. ในวันสุดท้ายของเดือน" "01510?*6l" ในวันศุกร์สุดท้ายของเดือนเวลา 10:15 น. ในวันศุกร์สุดท้ายของเดือน "01510?*6L2002-2005" ในวันศุกร์ที่ผ่านมา 60 วันที่ 6
สรุป
ข้างต้นเป็นเรื่องเกี่ยวกับงานตามกำหนดของ Quarzt ในบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!