รายละเอียดซอฟแวร์:
ควอตซ์เป็นโอเพนซอร์สและฟรีเต็มรูปแบบบริการการจัดตารางงานที่สามารถบูรณาการกับหรือใช้พร้อมแทบทุกด้าน Java EE หรือ Java SE สมัคร - จากโปรแกรมแบบสแตนด์อะโลนที่เล็กที่สุดไปยังระบบ E-commerce ที่ใหญ่ที่สุด .
ควอตซ์สามารถใช้ในการสร้างตารางง่ายหรือซับซ้อนสำหรับการดำเนินการหลายสิบหลายร้อยหรือแม้กระทั่งนับจากนับพันงาน; งานมีงานที่จะถูกกำหนดเป็นชิ้นส่วนมาตรฐาน Java ที่อาจดำเนินการอะไรจริงคุณอาจตั้งโปรแกรมให้พวกเขาทำ จัดตารางเวลาควอตซ์มีคุณสมบัติระดับองค์กรเป็นจำนวนมากเช่นการทำธุรกรรมและการจัดกลุ่ม JTA.
คุณสมบัติ
- Runtime สภาพแวดล้อม:
- ควอตซ์สามารถทำงานที่ฝังตัวอยู่ในโปรแกรมประยุกต์ยืนฟรีอีก
- ควอตซ์สามารถ instantiated ภายในแอพพลิเคชันเซิร์ฟเวอร์ (หรือภาชนะ servlet) และมีส่วนร่วมในการทำธุรกรรม XA
- ควอตซ์สามารถเรียกใช้เป็นโปรแกรมแบบสแตนด์อะโลน (ภายในเครื่องเสมือนของตัวเอง Java) เพื่อนำมาใช้ผ่าน RMI
- ควอตซ์สามารถ instantiated เป็นกลุ่มของโปรแกรมแบบสแตนด์อะโลน (มีโหลดสมดุลและความสามารถไม่เกิน)
- การจัดตารางการทำงาน:
- งานมีกำหนดที่จะทำงานเมื่อได้รับ Trigger เกิดขึ้น ทริกเกอร์สามารถสร้างขึ้นด้วยเกือบการรวมกันของคำสั่งดังต่อไปนี้ ...
- ในเวลาที่แน่นอนของวัน (เพื่อมิลลิวินาที)
- ในบางวันของสัปดาห์
- ในบางวันของเดือน
- ในบางวันของปี
- ไม่ได้ในบางวันอยู่ภายในปฏิทินจดทะเบียน (เช่นวันหยุดทำการ)
- ซ้ำหมายเลขเฉพาะของครั้ง
- ซ้ำจนกว่าจะถึงเวลาที่เฉพาะเจาะจง / วัน
- ทำซ้ำไปเรื่อย ๆ
- ซ้ำกับช่วงเวลาที่ล่าช้า
มีอะไรใหม่ ในข่าวประชาสัมพันธ์นี้:
- โครงร่างของการเปลี่ยนแปลงที่สำคัญที่สุด API:
- วิธี API ที่กลับมา (หรือใช้เป็นพารามิเตอร์) อาร์เรย์ตอนนี้กลับมา (หรือใช้) พิมพ์คอลเลกชัน ตัวอย่างเช่นแทนที่จะ getJobGroupNames (): String [] ตอนนี้เรามี getJobGroupNames (): รายชื่อ
- งานและบัตรประจำตัว Trigger จะขึ้นอยู่ในขณะนี้บน JobKey และ TriggerKey คีย์รวมทั้งชื่อและกลุ่ม วิธีการที่ทำงานโดยเฉพาะอย่างยิ่งในงาน / เรียกตอนนี้ใช้เวลาคีย์เป็นพารามิเตอร์ ตัวอย่างเช่น getTrigger (กุญแจ TriggerKey): ไกมากกว่า getTrigger (ชื่อ String กลุ่ม String):. ไก
- Trigger คือตอนนี้อินเตอร์เฟซที่มากกว่าระดับ ในทำนองเดียวกันสำหรับ SimpleTrigger, CronTrigger ฯลฯ .
- New DSL / สร้างที่ใช้งาน API สำหรับการก่อสร้างและทริกเกอร์:
- วิธีการจาก TriggerUtils เกี่ยวข้องกับการก่อสร้างได้ง่ายจากวันที่ได้รับการย้ายไปอยู่ที่ระดับ DateBuilder ใหม่ที่สามารถนำมาใช้กับการนำเข้าคงที่อย่างกรณีวันที่สร้างสำหรับการเริ่มต้นทริกเกอร์และสิ้นสุด ฯลฯ .
- StatefulJob อินเตอร์เฟซได้รับการคัดค้านในความโปรดปรานของคำอธิบายประกอบระดับระดับใหม่สำหรับการเรียนการทำงาน (ใช้คำอธิบายประกอบทั้งผลิตเทียบเท่ากับที่ของอินเตอร์เฟซ StatefulJob เก่า):
- ersistJobDataAfterExecution - สั่งการจัดตารางเวลาที่จะกลับมาจัดเก็บเนื้อหา JobDataMap ของงานหลังจากการดำเนินการเสร็จสมบูรณ์ .
- isallowConcurrentExecution - สั่งการจัดตารางเวลาเพื่อป้องกันกรณีอื่น ๆ ของงานเดียวกัน (โดย JobKey) จากการดำเนินการเมื่อหนึ่งอยู่แล้ว .
- บันทึกย่อใหม่: @ExecuteInJTATransaction เพิ่มคำอธิบายประกอบระดับนี้เพื่อสั่งงานควอตซ์ที่จะเริ่มต้นการทำธุรกรรม JTA ก่อนที่จะดำเนินงาน (และกระทำ / ย้อนกลับหลังจากเสร็จสิ้น / ข้อยกเว้น) การกำหนดค่าทรัพย์สิน wrapJobExecutionInUserTransaction จาก 1.x รุ่นยังคงมีอยู่ แต่คำอธิบายประกอบใหม่ช่วยให้คุณสามารถปรับแต่งพฤติกรรมต่องานในขณะที่การตั้งค่าสถานที่ให้มีผลกระทบต่องานทั้งหมด.
- การเปลี่ยนแปลงที่สำคัญในการใช้งานของ JobListener และ TriggerListener:
- การกำจัดของความแตกต่างระหว่าง "ทั่วโลก" และ "ที่ไม่ใช่ระดับโลก" ฟัง
- JobDetails และทริกเกอร์มีการกำหนดค่าไม่ได้อยู่กับรายชื่อของผู้ฟังที่จะแจ้งให้แทนฟังระบุว่างาน / ทริกเกอร์พวกเขาสนใจ.
- ฟังที่ได้รับมอบหมายในขณะนี้ชุดของกรณี Matcher -. ที่ให้กฎการจับคู่สำหรับงาน / ทริกเกอร์ที่พวกเขาต้องการที่จะได้รับสำหรับเหตุการณ์ที่เกิดขึ้น
- ฟังได้รับการจัดการในขณะนี้ผ่าน API ListenerManager มากกว่าโดยตรงกับตารางเวลา API.
- ระดับ SchedulerException และลำดับชั้นได้รับการทำความสะอาดขึ้น.
- DateIntervalTrigger ถูกเปลี่ยนชื่อเป็น CalendarIntervalTrigger (หรือมากกว่าตรงชั้นที่เป็นรูปธรรมคือตอนนี้ CalendarIntervalTriggerImpl).
- ความคิด (ทรัพย์สิน) ของ "ความผันผวน" ของงานและทริกเกอร์ได้รับการกำจัด.
- MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY การเรียนการสอนทริกเกอร์ติดใหม่ช่วยให้ทริกเกอร์กำหนดค่าในลักษณะที่ว่ามันจะถูกละเว้นการคัดเลือกจากการจัดการติดทั้งหมด ในคำอื่น ๆ มันจะยิงโดยเร็วที่สุดเท่าที่จะสามารถที่ไม่มีการจัดการพิเศษ - ตัวเลือกที่ดีสำหรับการปรับปรุงประสิทธิภาพโดยเฉพาะอย่างยิ่งกับการตั้งค่าที่มีจำนวนมากหนึ่งยิง (ไม่ซ้ำ) ทริกเกอร์ .
- ไก compareTo () ของวิธีการในขณะนี้ได้อย่างถูกต้องที่เกี่ยวข้องกับมันเท่ากับ () วิธีการในการที่จะเปรียบเทียบที่สำคัญของทริกเกอร์มากกว่าเวลาที่ไฟไหม้ต่อไป เปรียบเทียบใหม่ที่เรียกเรียงลำดับตามเวลาที่เกิดไฟไหม้มีความสำคัญและที่สำคัญได้รับการเพิ่มเป็น Trigger.TriggerTimeComparator.
- คุณสมบัติใหม่:
- Scheduler.clear () วิธีการให้บริการที่สะดวก (และอันตราย!) วิธีที่จะเอางานทั้งหมด, ทริกเกอร์และปฏิทินจากกำหนดการ.
- Scheduler.scheduleJobs (แผนที่ triggersAndJobs, บูลแทนที่) วิธีการให้บริการที่สะดวกสบายนอกจากนี้กลุ่มของงานและเรียก.
- Scheduler.unscheduleJobs (รายชื่อ triggerKeys) วิธีการให้กลุ่มที่สะดวก unscheduling ของงาน.
- Scheduler.deleteJobs (รายชื่อ jobKeys) วิธีการลบจำนวนมากให้ความสะดวกสบายของงาน (และทริกเกอร์ที่เกี่ยวข้อง).
- Scheduler.checkExists (JobKey jobKey) และ Scheduler.heckExists (TriggerKey triggerKey) วิธีการมีวิธีที่สะดวกในการตรวจสอบเอกลักษณ์ของงาน / คีย์ทริกเกอร์ (เมื่อเทียบกับเก่ามีการมีการดึงงาน / ทริกเกอร์โดยใช้ชื่อและจากนั้นตรวจสอบว่า ผลที่ได้ null).
- JDBCJobStore ขณะนี้ช่วยให้หนึ่งชุดของตารางที่จะใช้โดยหลายกรณีการจัดตารางเวลาที่แตกต่างกัน
- JDBCJobStore อยู่ในขณะนี้มีความสามารถในการจัดเก็บการใช้งานทริกเกอร์ที่ไม่ใช่ธุรกิจหลักโดยไม่ต้องใช้คอลัมน์หยดผ่านการใช้อินเตอร์เฟซ TriggerPersistenceDelegate ใหม่ซึ่งสามารถ (ขยะ) จะดำเนินการโดยการพัฒนาระบบประเภททริกเกอร์ที่กำหนดเอง.
- JDBCJobStore ขณะนี้รวมถึง SybaseDelegate เข้ากันได้ดีขึ้นด้วย Sybase
- การแสดงออก Cron ขณะนี้สนับสนุนความสามารถในการระบุชดเชยสำหรับ "วันสุดท้ายของเดือน" และ "วันสุดท้ายของเดือน" การแสดงออก สำหรับตัวอย่าง:. "L-3" (สามวันกลับมาจากที่ผ่านมาของเดือน) หรือ "L-3W" (วันที่ใกล้ที่สุดเพื่อวันสามวันกลับมาจากวันสุดท้ายของเดือน)
- ไฟล์ XML ที่มีข้อมูลการตั้งเวลาในขณะนี้มีวิธีการระบุเวลาเริ่มต้นทริกเกอร์เป็นชดเชยในอนาคตจากเวลาที่ไฟล์จะถูกประมวลผล (ที่มีประโยชน์สำหรับทริกเกอร์ที่ต้องการที่จะเริ่มต้นการยิงบางครั้งหลังจากที่โปรแกรมจะเริ่มต้น / ใช้งาน).
- จากคี:
- คีไฟล์ XML ในขณะนี้สนับสนุนการระบุคุณสมบัติ 'จัดลำดับความสำคัญของทริกเกอร์.
- QuartzInitializerListener (และ QuartzInitializerServlet) สนับสนุนพารามิเตอร์ใหม่ "รอ-on-ปิด" ซึ่งจะทำให้เกิดการจัดตารางเวลาที่จะรอให้การดำเนินงานให้เสร็จสมบูรณ์ก่อนที่จะปิดลงเมื่อภาชนะ Servlet เป็นปฏิปักษ์ต่อการปรับใช้แอพลิเคชัน.
- เพิ่ม DirectoryScanJob งานหลักของเรือลำนั้นด้วยควอตซ์ยังเพิ่มพารามิเตอร์อายุขั้นต่ำที่จะ FileScanJob ที่มีอยู่ก่อน.
- เพิ่มความสามารถที่จะเพิ่มเข้ามาใน ServletContext SchedulerContext เมื่อใช้ QuartzInitializerListener หรือ QuartzInitializerServlet ในการเริ่มต้นควอตซ์ภายในโปรแกรมเว็บ Java EE.
- เบ็ดเตล็ด:
- การปรับปรุงประสิทธิภาพต่างๆรวมถึง (แต่ไม่ จำกัด เฉพาะ):
- ความสามารถในการเรียกซื้อชุดที่มีความพร้อมที่จะถูกไล่ออกซึ่งสามารถให้การปรับปรุงประสิทธิภาพการทำงานสำหรับ schedulers ยุ่งมาก </ li>
- วิธีการสำหรับการเพิ่มชุด / กำจัดของงานและทริกเกอร์ (ดู "คุณสมบัติใหม่")
- ทริกเกอร์มีติดใหม่ตัวเลือกการเรียนการสอน MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY ซึ่งอาจจะเป็นประโยชน์ถ้าคุณไม่จำเป็นต้องติดการจัดการสำหรับทริกเกอร์ของคุณ (s), และต้องการที่จะใช้ประโยชน์จากการได้รับประสิทธิภาพ
- การแก้ไขข้อบกพร่องต่าง ๆ สำหรับรายการที่สมบูรณ์ดูหมายเหตุปล่อยจากจิระ: https://jira.terracotta.org/jira/secure/ReleaseNote.jspa?projectId=10282&version=10842
- DBCP ไม่ได้ใช้ร่วมกันในการเชื่อมต่อฐานข้อมูล C3PO ใช้แทน.
- การใช้งาน JobFactory จะเริ่มต้นตอนนี้มี (ผ่าน) จัดการตารางเวลา.
- ตัวอย่างทั้งหมดบรรจุในตัวอย่าง? ไดเรกทอรีของการกระจายควอตซ์ได้รับการปรับปรุงเพื่อให้การใช้ (แสดง) ใหม่ API สำหรับการกำหนดงานและเรียก.
มีอะไรใหม่ ในรุ่น 1.6.6:
- ไม่กี่แก้ไขข้อผิดพลาดที่สำคัญ
- การปรับปรุงเล็กน้อยคู่
ต้องการ
- Java 2 Standard Edition Runtime Environment
ความคิดเห็นที่ไม่พบ