กระบวนการกำหนดค่าควอตซ์ในฤดูใบไม้ผลิ:
1. นำเข้าแพ็คเกจขวด
แพ็คเกจ JAR ที่ต้องการโดย Quartz นั้นรวมอยู่ในฤดูใบไม้ผลิแล้วซึ่งอยู่ใน Quartz-ALL-1.6.1.JAR Under /Lib /Quartz ในไดเรกทอรีหลังจากการบีบอัดฤดูใบไม้ผลิ
เพียงคัดลอกไปยัง web-inf/lib ของโครงการ
2. กำหนดค่า web.xml เพื่อโหลดไฟล์การกำหนดค่าควอตซ์เมื่อเริ่มต้นสปริง
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <web-app version = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://ww.w3.org/200 XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_2_2_2_2_2_2_2_ <param-name> contextconfiglocation </param-name> <param-value> classpath: แอปพลิเคชัน-*. xml </param-value> </context-param> <!-การฟังฤดูใบไม้ผลิ-> <sistener>
3. เขียนไฟล์การกำหนดค่าควอตซ์: Application-quartz.xml อันที่จริงแล้วการกำหนดค่าเหล่านี้สามารถเขียนได้ในไฟล์การกำหนดค่าสปริงอื่น ๆ
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://ww.w3.org/2001/xml xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: tx = "http://www.springframework.org/schema/tx" xsi: schemalocation = "http:/ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://ww.springframework.org/schema/ttx เอนทิตี-> <bean id = "testTaskBean" /> <!-วิธีการนโยบายการอัปเดตที่กำหนดเวลา-> <bean id = "testTaskTimermethod"> <property name = "targetObject" ref = "testtaskean" /> <! /> </ebean> <!-ทริกเกอร์นโยบายการอัปเดตที่กำหนดเวลา-> <bean id = "testTaskTrigger"> <ชื่อคุณสมบัติ = "jobDetail" ref = "syncPolicyTaskTimermethod" /> <! /> </ebean> <!-รายการงานที่กำหนดเอง-> <bean id = "scheduler"> <property name = "ทริกเกอร์"> <list> <ref bean = "testtasktrigger"/> </list> </property>
4. เขียน TestTask คลาส Java ที่ดำเนินการงาน
แพ็คเกจ com.jp.task; นำเข้า org.quartz.jobexecutioncontext; นำเข้า org.quartz.jobexecutionexception; นำเข้า org.springframework.scheduling.quartz.quartzjobbean; Public Class TestTask ขยาย Quartzjobbean {logger log = logger.getLogger (PolicyServiceTest.class); Public Void Executeaction () {log.info ("Hello Quartz"); } @Override Void Protected ExecuteInternal (JobExecutionContext Arg0) พ่น jobExecutionException {}} 5. งานทั้งหมดพร้อมและทำงาน โดยพื้นฐานแล้วมีการรายงานข้อผิดพลาด มันเกี่ยวกับข้อผิดพลาดของ nosuchmethod
นี่เป็นเพราะรุ่นต่ำของ collections.jar จำเป็นต้องมีการสะสมคอมมอนส์ -3.2.jar หรือสูงกว่า
ในเวลานี้คุณกำลังมองหาคอมมอนส์คอลเล็คชั่น -3.2.jar ในโครงการ เกิดอะไรขึ้น? หากคุณมองหามันอีกครั้งคุณจะพบว่ามีคอมมอนส์-คอลเล็คชั่น -2.1.1.jar ในไฮเบอร์เนต
เพียงแค่ลบ Commons-Collections-2.1.1.jar
PS: cronexpression-คำอธิบายการแสดงออกของ cron
Cron Trigger ใช้ชุดอักขระพิเศษดังที่แสดงด้านล่าง:
อักขระ backslash (/) ระบุค่าที่เพิ่มขึ้น ตัวอย่างเช่นในฟิลด์วินาที "5/15" หมายถึงการเริ่มต้นจากวินาทีที่ห้าทุกครั้งที่ 15 วินาที
เครื่องหมายคำถาม (?) อักขระและตัวอักษรตัวอักษร L มีเฉพาะในวันที่เดือนและวันที่ของฟิลด์สัปดาห์ เครื่องหมายคำถามระบุว่าฟิลด์นี้ไม่มีค่าเฉพาะ ดังนั้นหากคุณระบุวันที่ภายในเดือนคุณสามารถแทรก "?" ในวันที่ภายในสัปดาห์เพื่อระบุว่าค่าวันที่ภายในสัปดาห์ไม่สำคัญ ตัวอักษรตัวอักษร L เป็นตัวย่อของล่าสุด วางไว้ในฟิลด์ Intramonth Date ซึ่งหมายความว่ามีกำหนดจะดำเนินการในวันสุดท้ายของเดือน ในฟิลด์ Intraweek Date ถ้า "L" มีอยู่เพียงอย่างเดียวมันจะเท่ากับ "7" มิฉะนั้นจะแสดงถึงตัวอย่างสุดท้ายของวันที่ Intraweek ในเดือนนี้ ดังนั้น "0L" หมายความว่ามีกำหนดจะดำเนินการในวันอาทิตย์สุดท้ายของเดือน
ตัวอักษร (W) อักขระในฟิลด์วันที่ภายในเดือนกำหนดการดำเนินการกับวันทำงานใกล้กับค่าที่ระบุ การวาง "1W" ในฟิลด์วันที่เดือนหมายความว่าการดำเนินการจะถูกกำหนดภายในวันทำการครั้งแรกของเดือน
อักขระปอนด์ (#) ระบุอินสแตนซ์วันทำการเฉพาะสำหรับเดือนที่กำหนด การวาง "mon#2" ในฟิลด์วันที่ Intraweek หมายถึงการกำหนดเวลางานในวันจันทร์ที่สองของเดือน
อักขระ Asterisk (*) เป็นอักขระไวด์การ์ดซึ่งหมายความว่าฟิลด์สามารถยอมรับค่าที่เป็นไปได้ใด ๆ
อักขระพิเศษที่อนุญาตโดยค่าฟิลด์ที่อนุญาต:
0-59 วินาที - * /
0-59, - * /
ชั่วโมง 0-23, - * /
วันที่ 1-31, - *? / LWC
เดือนที่ 1-12 หรือ Jan-Dec,- * /
สัปดาห์ที่ 1-7 หรือ Sun-Sat- *? / lc #
ปี (ไม่บังคับ) ว่างเปล่า 2513-2562, - * /
ความหมายการแสดงออก
"0 0 12 * *?" ทริกเกอร์เวลา 12.00 น. ทุกวัน
"0 15 10? * *" กระตุ้นเวลา 10:15 น. ทุกวัน
"0 15 10 * *?" กระตุ้นเวลา 10:15 น. ทุกวัน
"0 15 10 * *? *" เรียกทุกวันเวลา 10:15 น.
"0 15 10 * *? 2005" เรียกเวลา 10:15 น. ทุกวันในปี 2548
"0 * 14 * *?" ทริกเกอร์ทุก ๆ 1 นาทีระหว่าง 14.00 น. ถึง 14:59 น
"0 0/5 14 * *?" ทริกเกอร์ทุก ๆ 5 นาทีระหว่าง 14.00 น. ถึง 14:55 น. ทุกวัน
"0 0/5 14,18 * *?" ทริกเกอร์ทุก ๆ 5 นาทีระหว่าง 2:55 น. และระหว่าง 18:55 น. และระหว่าง 18:55 น
"0 0-5 14 * *?" ทริกเกอร์ทุก ๆ 1 นาทีระหว่าง 14.00 น. ถึง 14:05 น. ทุกวัน
"0 10,44 14? 3 พุธ" ทริกเกอร์ทุกวันพุธเวลา 2:10 และ 14:44 น.
"0 15 10? * Mon-Fri" เริ่มตั้งแต่เวลา 10:15 น. วันจันทร์ถึงวันศุกร์
"0 15 10 15 *?" กระตุ้นเวลา 10:15 น. ในวันที่ 15 ของทุกเดือน
"0 15 10 l *?" กระตุ้นเวลา 10:15 น. ในวันสุดท้ายของแต่ละเดือน
"0 15 10? * 6L" เรียกเวลา 10:15 น. ในวันศุกร์สุดท้ายของแต่ละเดือน
"0 15 10? * 6L 2002-2005" เรียกใช้เวลา 10:15 น. ในวันศุกร์สุดท้ายของแต่ละเดือนตั้งแต่ปี 2545 ถึง 2548
"0 15 10? * 6#3" ทริกเกอร์ทุกวันเวลา 10:15 น. ในวันศุกร์ที่สามของแต่ละเดือนเวลา 6.00 น.
0 6 * * *
ทุกสองชั่วโมง
0 */2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
ทุกสองชั่วโมงระหว่าง 23.00 น. ถึง 8.00 น.
0 23-7/2, 8 * * *
ในวันที่ 4 ของทุกเดือนและตั้งแต่วันจันทร์ถึงวันพุธทุกสัปดาห์เวลา 11.00 น.
0 11 4 * 1-3
1 มกราคมเวลา 4 โมงเช้า
0 4 1 1 *