في خلفية تطبيق أدوات التطوير والاختبار ، أسمع غالبًا أن الزملاء يقولون إنهم بحاجة إلى القيام بمهمة موقوتة للقيام بمعالجة السجل أو تنظيف البيانات ، بما في ذلك القيام ببعض منطق حساب الأعمال المعقد. عند اختيار مهمة موقوتة ، كيف يمكنهم تنفيذها بسرعة واختيار طريقة أكثر ملاءمة لك؟ لقد جمعت ونظم بعض الطرق لتنفيذ المهام المجدولة هنا. آمل أن يساعد الطلاب الذين بدأوا للتو في القيام بالمهام المجدولة. الرجاء تصحيح أي كتابة خاطئة.
هناك ثلاث طرق لتلخيص مهام التوقيت الأساسية Java:
1.1 قم بإنشاء مؤشر ترابط ، ثم اتركه يعمل في حلقة بينما ، وحقق تأثير مهمة التوقيت من خلال طريقة النوم ؛
1.2 استخدام المؤقت و timertask له الفوائد التالية مقارنة بالطريقة الأولى:
1.3 يتم تقديم SchedeDexecutorService كفئة أدوات متزامنة من java.util.concurrent. هذه هي طريقة تنفيذ المهام المثالية. بالمقارنة مع الطريقتين السابقتين ، فإن لديها الفوائد التالية:
هناك ثلاث طرق لتلخيص المهام الموقوتة في الربيع:
2.1 SecrettItTimerTask: يحدد ScredultTimerTask من Spring دورة تشغيل مهمة مؤقت. لسوء الحظ ، يمكنك تحديد تواتر تنفيذ المهمة ، لكن لا يمكنك تحديد وقت تشغيله بالضبط ، مما يتطلب استخدام الكوارتز الثاني لجدولة المهام ؛
إنشاء مهمة عمل ، تم الإعلان عنها في ملف تكوين الربيع ؛
في ملف تكوين الربيع ، قم بتكوين ScreduledTimerTask وربط مثيل المهمة المخصصة ؛
ابدأ الموقت ، يعد TimerFactoryBean في الربيع مسؤولاً عن بدء مهمة التوقيت
2.2 باستخدام الكوارتز:
بادئ ذي بدء ، حدد مهام منطق العمل كالمعتاد:
أعلن وتكوين طريقة الزناد لجدولة الوظائف في الربيع
هنا ، هناك نوعان من مشغلات الوظائف للكوارتز ، وهما
org.springframework.scheduling.quartz.simpletriggerbean
org.springframework.scheduling.quartz.crontriggerbean
يدعم SimpleTriggerBean الأول فقط استدعاء المهام بتردد معين ، مثل الركض مرة واحدة كل مرة.
<bean id = "simpletrigger"> <property name = "JobDetail" ref = "myjob" /> <property name = "startDelay" value = "0" /> <!-بعد أن يتم إنشاء مصنع إرسال ، يبدأ الإرسال بعد 0 ثانية-<
يدعم النوع الثاني من crontriggerbean الركض مرة واحدة في وقت محدد ، مثل الركض مرة واحدة في الساعة 12:00 كل يوم ، كما تم تكوينه أعلاه ؛
تكوين مصنع الإرسال
org.springframework.scheduling.quartz.schedulerfactorybean ، الرمز كما هو مذكور أعلاه ؛
فقط قم بتشغيل طلبك
2.3 باستخدام المهام الربيع
يمكن لمهمة المهام الخاصة بـ Spring ، مهمة الربيع ، مقارنتها بكوارتز خفيفة الوزن ، وهي بسيطة للغاية. لا يتطلب حزم إضافية باستثناء الحزم ذات الصلة بنابض ، ويدعم نوعين من التعليقات التوضيحية وملفات التكوين:
الخطوة 1: اكتب فئة المهام ؛ TaskJob ، Method Job1 - الخطوة الثانية لحذف الكود: أضف مساحة الاسم والوصف في رأس ملف تكوين الربيع
<beans xmlns = "http://www.springframework.org/schema/beans" http://www.springframework.org/schema/task/spring-task-3.0.xsd ">
الخطوة 3: تعيين مهام محددة في ملف تكوين الربيع
<المهمة: مجدولة المهام> <المهمة: مجدولة المرجع = "taskjob" method = "job1" cron = "0 * * *؟"/> </task: مجدولة المهام> <السياق: مكون المستحضر الأساس = "com.alibaba.mytask"/>
الوصف: تحدد معلمة REF فئة المهام ، وتحدد الطريقة الطريقة التي يجب تشغيلها ، وتعبيرات cron و cronexpression ، ولن يتم تقديم طريقة الكتابة المحددة هنا ، و <context: component-scan base-package = "com.alibaba.mytask" /> redation scan spring.
ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون مفيدًا لتعلم الجميع.