مقدمة
Quarzt هو مشروع مفتوح المصدر ينفذ المهام بانتظام في المشروع. الكوارتز هو مشروع مفتوح المصدر آخر في مجال جدولة الوظائف. يمكن دمجها مع تطبيقات J2EE و J2SE أو استخدامها بشكل منفصل. هنا نقدم أمثلة على التكامل مع الربيع.
نظرًا لأن Spring يحتوي على Quarzt ، نحتاج فقط إلى تكوينه.
قم بتنزيل حزمة جرة
يمكنك تنزيل حزمة JAR مباشرة على الموقع الإلكتروني http://www.quartz-scheduler.org/ Quarzt الرسمي
يمكن بناؤه من خلال Maven ، تذكر تقديم الجرة المطلوبة لفصل الربيع
<!-إدخال التبعيات المقابلة لـ Quartz-> <redency> <roupiD> org.quartz-scheduler </groupId> <ChartActId> Quartz </stifactid> <sored> 2.2.3 </sperzid> </reperency> deperency> <splection> 2.2.3 </version> </premency>
مفهوم
فئة المهام: أي فئة تتطلب تنفيذ الرمز على فترات منتظمة.
JobDetail: تفاصيل تكوين فئة المهام ، أي طريقة حقن فئة المهام وتحديد فئة المهام ، هي وظيفة قابلة للتنفيذ قد تكون في حد ذاتها.
MyTrigger: يمثل الزناد تكوين معلمة جدولة ، وتكوين وقت الاتصال.
جدولة: إنها حاوية جدولة ، والتي يمكن أن تحتفظ بالعديد من مواد العمل والمشغلات. عند بدء تشغيل الحاوية ، سيتم تنفيذ كل dobetail فيه تلقائيًا خطوة بخطوة وفقًا للمشغل.
طريقة التكوين
أولا اكتب فئة المهام
الطبقة العامة myjob {public void job () {system.out.println (new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"). format (date ()) + ": تنفيذ المهمة") ؛ }}ثم الربيع لتكوين حبة فئة المهام
<bean id = "myjob" />
تكوين jobdetail ، حقن فئات المهام وطرق فئات المهام
<bean id = "JobDetail"> <!-حقن كائن الهدف-> <property name = "targetObject" ref = "myjob"/> <!-حقن طريقة الهدف-> <property name = "targetmethod" value = "Job"/> </bean>
تكوين المشغلات
<!-تكوين Trigger-> <bean id = "mytrigger"> <!-حقن تفاصيل المهمة كائن-> <property name = "JobDetail" Ref = "JobDetail"/> <!-حقن التعبير cron ، حدد نقطة التشغيل-> <property name = "cronexpression"> <value>/5 * * * *؟ سوف تبقى الذرة في ما يلي </property> </ban>
أخيرًا ، قم بتكوين مصنع الإرسال وحقن الزناد المكون
<!-تكوين مصنع الإرسال-> <bean id = "SchedulerFactoryBean"> <!-الزناد الحقن-> <property name = "triggers"> <list> <ref bean = "mytrigger"/> </list> </spretar
في هذه المرحلة ، يتم الانتهاء من التكوين ويمكن تنفيذ مهام التوقيت.
نتائج التنفيذ
تعبير كرون
يتم استخدام الذرة للتحكم في وقت جدولة المهمة ويتم تكوينها في الزناد. فيما يلي بناء الجملة الأساسي للتعبير عن الذرة. إذا كان يبدو معقدًا للغاية ، فسيتم توفير مولد بناء جملة الذرة على الإنترنت http://cron.qqe2.com/. يمكنه تلقائيًا إنشاء تعبيرات الذرة عن طريق تحديد الظروف.
فيما يلي المعاني التي يمثلها سبعة *
النجمة: * يمثل أي وقت ، مما يشير إلى أنك تريد تضمين جميع القيم القانونية في هذا الحقل.
* * * * * * يعني أنه سيؤدي إلى كل لحظة
0 * 17 * * ? : Inspire Trishers كل دقيقة من الساعة 5 مساءً إلى 5:59 مساءً كل يوم. يتوقف في الساعة 5:59 مساءً لأن القيمة هي 17 في مجال الساعة ، الساعة 6 مساءً ، تصبح الساعة 18 ، لذلك أتجاهل هذا الزناد حتى الساعة 5 مساءً في اليوم التالي.
علامة استفهام (؟):؟ لا يمكن استخدام الإشارة إلا في المجالات اليومية والأسبوعية ، ولكن لا يمكن استخدامها في وقت واحد على هذين المجالين. هل يمكنك التفكير؟ الشخصية هي "لا يهمني ما هي القيمة الموجودة في الحقل." هذا يختلف عن النجمة ، مما يشير إلى كل قيمة في الحقل. ؟ يعني أنك لا تحدد قيمة لهذا الحقل. إذا قمت بتحديد قيمة لأحد هذين الحقلين ، فيجب عليك وضع A؟ على قيمة الكلمة الأخرى.
0 10,44 14 ? 3 WEB : يتم تشغيله في الساعة 2:10 مساءً و 2: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 صباحًا.
الحرف (ل): يشير L إلى القيمة الأخيرة المسموح بها في الحقل. يتم دعمها فقط من قبل المجالات اليومية والأسبوعية. عند استخدامها في المجال النهاري ، فإنه يمثل اليوم الأخير من الشهر المحدد في مجال الشهر. عند استخدام الحرف L في مجال الأسبوع ، يشير إلى آخر يوم من الأسبوع ، وهو يوم السبت (أو الرقم 7) ، يمكنك استخدام رقم لتوصيل L لتمثيل الأسبوع الأخير من الشهر X.
0 0 8 L * ? : نشأ في الساعة 8:00 صباحًا في اليوم الأخير من كل شهر
0 59 23 ? * L : نشأ في الساعة 11:59 يوم السبت الأخير من كل شهر
0 0 12 ? * 2L : آخر يوم الاثنين من كل شهر يحفز (الرقم متصل بـ L لتمثيل الأسبوع الأخير من الشهر العاشر)
الرسالة (W): أيام الأسبوع (MON-FRI) ، ولا يمكن استخدامها إلا في المجال اليومي. يتم استخدامه لتحديد أقرب أيام الأسبوع إلى اليوم المحدد
علامة الاختراق ( #): لا يمكن استخدام حرف # إلا في المجال المحيطي. يتم استخدامه لتحديد أي يوم من الأسبوع في شهر محدد. على سبيل المثال ، إذا حددت قيمة الحقل الأسبوعي لتكون 6 رقم 3 ، فهذا يعني الجمعة الثالثة لشهر معين (6 = الجمعة ، رقم 3 يعني الأسبوع الثالث من الشهر).
مثال
"0012 **؟" يتم تشغيله في الساعة 12 ظهراً كل يوم "01510؟ **" تم تشغيله في الساعة 10:15 صباحًا كل يوم "01510 **؟" يتم تشغيله في الساعة 10:15 صباحًا كل يوم "01510 **؟*" يتم تشغيله في الساعة 10:15 صباحًا كل يوم "01510 **؟ 2005" تم تشغيله في الساعة 10:15 صباحًا كل يوم "0*14 **؟" يتم تشغيله في الساعة 10:15 صباحًا كل يوم في عام 2005 من الساعة 2:59 مساءً كل يوم "00/514 **؟" يتم تشغيله في الساعة 2:00 مساءً كل يوم من الساعة 2:00 مساءً إلى 2:55 مساءً كل يوم "00/514،18 **؟" تم تشغيله في الساعة 2:00 مساءً كل يوم من الساعة 2:00 مساءً إلى 2:55 مساءً وكل 5 دقائق كل يوم من الساعة 6:55 مساءً وكل 6:55 مساءً إلى 6:55 مساءً كل يوم كل يوم واحد يتم تشغيله "010،4414؟ 3Wed" يوم الأربعاء من يوم الأربعاء "يوم الأربعاء" يوم الأربعاء "يوم الأربعاء". "015 صباحًا في 15 من الشهر" "01510L*؟" "015 صباحًا في اليوم الأخير من الشهر" "" 01510؟*6L "في أيام الجمعة الأخيرة من الشهر في الساعة 10:15 صباحًا في أيام الجمعة الأخيرة من الشهر" 01510؟
لخص
ما ورد أعلاه هو كل شيء عن المهام المجدولة في هذه المقالة ، آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!