تفاصيل البرنامج:
الكوارتز هو مفتوح المصدر ومجاني، كامل المواصفات خدمة جدولة الوظائف التي يمكن دمجها مع، أو استخدامها جنبا الى جنب مع أي تطبيق جافا EE أو جافا SE - من أصغر قائمة بذاتها تطبيق لأكبر نظام للتجارة الإلكترونية .
الكوارتز يمكن استخدامها لإنشاء جداول بسيطة أو معقدة لتنفيذ عشرات، مئات، أو حتى عشرات من بين آلاف فرص العمل. وظائف التي تم تعريفها كعناصر جافا القياسية التي قد أعدم تقريبا أي شيء قد تبرمجها للقيام بالمهام. يشمل كوارتز جدولة العديد من الميزات على مستوى المؤسسات، مثل المعاملات JTA والمجموعات.
الميزات:
بيئات وقت التشغيل:
الكوارتز يمكن أن تستمر جزءا لا يتجزأ من ضمن تطبيق آخر قائمة بذاتها
الكوارتز يمكن مثيل داخل خادم التطبيق (أو حاوية بريمج)، والمشاركة في المعاملات XA
الكوارتز يمكن تشغيل كبرنامج مستقل (داخل آلة جافا الافتراضية الخاصة)، ليتم استخدامها عبر RMI
الكوارتز يمكن مثيل كمجموعة من برامج قائمة بذاتها (مع الحمل التوازن وقدرات تنته بعد الفشل)
جدولة المهمة:
ومن المقرر فرص عمل لتشغيل عند إجراء الزناد معين. يمكن إنشاء مشغلات مع ما يقرب من أي مجموعة من التوجيهات التالية ...
في وقت معين من اليوم (لميلي ثانية واحدة)
في أيام معينة من الأسبوع
في أيام معينة من الشهر
في أيام معينة من السنة
لا في أيام معينة مدرجة ضمن التقويم المسجلين (مثل العطلات الأعمال)
تكرار عدد معين من المرات
تتكرر حتى وقت محدد / التاريخ
وكرر لأجل غير مسمى
كرر مع فاصل زمني تأخير
ما هو الجديد في هذا الإصدار:
الخطوط العريضة لمعظم التغييرات API هامة:
أساليب API التي ترجع (أو اتخاذ كمعلمات) صفائف يعود الآن (أو يأخذ) المطبوعة مجموعات. على سبيل المثال، بدلا من getJobGroupNames (): سلسلة [] لدينا الآن getJobGroupNames (): قائمة
ويستند العمل وتحديد الزناد الآن على JobKey وTriggerKey. وتشمل مفاتيح كل من اسم ومجموعة. الأساليب التي تعمل على وظائف معينة / مشغلات الآن تأخذ مفاتيح كمعلمة. على سبيل المثال، getTrigger (مفتاح TriggerKey): الزناد، بدلا من getTrigger (اسم سلسلة مجموعة سلسلة): الزناد.
الزناد الآن واجهة، وليس فئة. وعلى نحو مماثل لSimpleTrigger، CronTrigger، الخ
DSL الجديد / API على أساس البناء لوظائف البناء والنوابض:
وقد تم نقل الأساليب من TriggerUtils المتعلقة بالبناء السهل التمور لفئة DateBuilder الجديدة، التي يمكن استخدامها مع واردات ثابتة لخلق طيف حالات التسجيل للبدء الزناد ونهاية مرات، الخ
وقد انتقدت واجهة StatefulJob لصالح الشروح على مستوى فئة جديدة لفئات وظيفة (باستخدام كل الشروح تنتج يعادل ذلك من واجهة StatefulJob القديمة):
ersistJobDataAfterExecution - يرشد جدولة لإعادة تخزين-JobDataMap محتويات أيوب بعد اكتمال التنفيذ.
isallowConcurrentExecution - يرشد جدولة لمنع حالات أخرى من نفس العمل (من قبل JobKey) من تنفيذ عندما واحد هو بالفعل.
الشرح الجديد:ExecuteInJTATransaction. مضيفا أن هذا الشرح إلى فئة الوظيفة يرشد كوارتز لبدء معاملة JTA قبل تنفيذ المهمة (والالتزام / التراجع بعد الانتهاء / استثناء). التكوين الملكية "wrapJobExecutionInUserTransaction" من الإصدار 1.x لا يزال موجودا، ولكن هذا الشرح الجديد يتيح لك ضبط السلوك على كل وظيفة، في حين أن الملكية التكوين تؤثر على جميع الوظائف.
تغييرات كبيرة في استخدام JobListener وTriggerListener:
إزالة التمييز بين المستمعين "العالمي" و "غير عالمي"
لم يعد يتم تكوين JobDetails والنوابض مع قائمة بأسماء من المستمعين أن يخطر بدلا المستمعين تحديد الوظائف التي / مشغلات أنهم مهتمون.
يتم تعيين المستمعين الآن مجموعة من الحالات المنظر - التي توفر قواعد مطابقة للوظائف / مشغلات كانوا يرغبون في تلقي أحداث ل.
تدار المستمعين الآن من خلال API ListenerManager، وليس مباشرة مع API المبرمج.
وقد تم تنظيف الطبقة SchedulerException والتسلسل الهرمي الدرجة الأعلى.
تم تغيير اسمها إلى DateIntervalTrigger CalendarIntervalTrigger (أو بعبارة أدق الطبقة ملموسة الآن CalendarIntervalTriggerImpl).
وقد تم القضاء على مفهوم (الملكية) من "تقلب" الوظائف والمشغلات.
جديد تعليمات الزناد اختل MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY يتيح أن يتم تكوين نقطة انطلاق في مثل هذه الطريقة أنه يتم تجاهل بشكل انتقائي من جميع التعامل اختل. وبعبارة أخرى، فإنه سيتم اطلاق النار بأسرع ما يمكن، مع عدم وجود معالجة خاصة - خيار كبير لتحسين الأداء وخاصة مع الاجهزة التي لديها الكثير من طلقة واحدة (غير التكرار) يطلق.
طريقة الزناد compareTo () الآن ويتصل بشكل صحيح لمتساوين في طريقة ()، لأنه يقارن مفتاح الزناد، بدلا من مرة والنار المقبل. A المقارنة الجديدة التي يفرز محفزات وفقا لآخر النار، وأضيف الأولوية والمفتاح كما Trigger.TriggerTimeComparator.
الميزات الجديدة:
يوفر طريقة Scheduler.clear () مريحة (وخطيرة!) وسيلة لإزالة كافة مهام، وموجبات والتقويمات من المجدول.
Scheduler.scheduleJobs (خريطة triggersAndJobs، منطقية استبدال) يوفر طريقة إضافة السائبة مريحة الوظائف والمشغلات.
يوفر طريقة Scheduler.unscheduleJobs (قائمة triggerKeys) unscheduling معظم مريحة من فرص العمل.
يوفر طريقة Scheduler.deleteJobs (قائمة jobKeys) حذف مجمعة مريحة من وظيفة (والمشغلات ذات الصلة).
Scheduler.checkExists (JobKey jobKey) وScheduler.heckExists (TriggerKey triggerKey) أساليب يوفر طريقة ملائمة لتحديد تفرد / مفاتيح الزناد وظيفة (على العكس من العمر لديها من وجود لاسترداد وظيفة / الزناد بالاسم ومن ثم تحقق ما إذا كانت النتيجة لا شيء).
يسمح JDBCJobStore الآن مجموعة واحدة من الجداول ليتم استخدامها من قبل مثيلات جدولة متميزة متعددة
JDBCJobStore الآن قادرة على تخزين تطبيقات الزناد غير الأساسية دون استخدام الأعمدة BLOB، من خلال استخدام واجهة TriggerPersistenceDelegate الجديدة، والتي يمكن (اختياريا) يتم تنفيذها من قبل منفذي أنواع الزناد المخصصة.
يشمل JDBCJobStore الآن SybaseDelegate لتحسين التوافق مع سايبيس
تعبيرات كرون يدعم الآن القدرة على تحديد إزاحة ل "اليوم الأخير من الشهر" و "يوم من أيام الأسبوع الأخير من الشهر" التعبيرات. للحصول على أمثلة: "L-3" (ثلاث أيام العودة من آخر الشهر) أو "L-3W" (أقرب يوم من أيام الأسبوع لمدة ثلاثة أيام أيام العودة من آخر يوم من الشهر).
ملفات XML التي تحتوي على بيانات جدولة الآن طريقة لتحديد الزناد بدء أضعاف التعويضات في المستقبل من مرة تتم معالجة الملف (مفيدة للمحفزات التي تحتاج إلى البدء بإطلاق النار بعد مرور بعض الوقت يتم تشغيل التطبيق / نشر).
من المخطط:
XML ملف المخطط يدعم الآن تحديد الملكية 'أولوية' من المشغلات.
QuartzInitializerListener (وQuartzInitializerServlet) يدعم معلمة جديدة "الانتظار على اساس اغلاق"، والذي يؤدي جدولة لانتظار تنفيذ وظائف لإكمال قبل اغلاق، عندما الحاوية بريمج هو تطبيق نشر الأمم المتحدة.
وأضاف DirectoryScanJob على الوظائف الأساسية التي تأتي مع كوارتز، وأضاف أيضا الحد الأدنى المعلمة سن ما قبل موجودة FileScanJob.
وأضاف القدرة على إضافة ServletContext في SchedulerContext عند استخدام QuartzInitializerListener أو QuartzInitializerServlet تهيئة الكوارتز داخل تطبيق ويب جافا EE.
منوعات:
تحسينات الأداء المختلفة، بما في ذلك (ولكن ليس على سبيل الحصر):
القدرة على مشغلات دفعة اكتساب التي هي على استعداد للإطلاق، التي يمكن أن توفر تحسينات في الأداء لالمنظمون مشغول جدا
طرق لإضافة الدفعة / إزالة الوظائف ومشغلات (انظر "ميزات جديدة")
مشغلات لديها خيار جديد تعليمات اختل، MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY، والتي قد تكون مفيدة إذا كنت لا تحتاج اختل التعامل مع المشغل الخاص بك (ق)، وترغب في الاستفادة من مكاسب الأداء
إصلاحات الشوائب المختلفة، على قائمة كاملة انظر ملاحظات الإصدار من جيرة: https://jira.terracotta.org/jira/secure/ReleaseNote.jspa؟projectId=10282&؛version=10842
لم يعد يستخدم DBCP لتجميع اتصال قاعدة البيانات، ويستخدم C3PO بدلا من ذلك.
يتم تهيئة تطبيقات JobFactory الآن مع (مرت) مؤشر إلى المبرمج.
كلها أمثلة تعبئتها في؟ الأمثلة؟ تم تحديث دليل توزيع كوارتز للاستفادة من (إظهار) في API جديد لتحديد وظائف والمشغلات.
ما هو الجديد في الإصدار 1.6.6:
قليل من الاصلاحات الهامة
بضعة تحسينات طفيفة
المتطلبات:
جافا 2 الإصدار القياسي للبيئة وقت التشغيل
لم يتم العثور على التعليقات