سؤال

كيف يمكنني تشغيل مهمة يوميًا في وقت محدد (على سبيل المثال 11:00 صباحًا) باستخدام java.util.Timer؟أنا أستخدم JDK 1.4.2، أعلم أنه قديم، ولكنه ما يتطلبه المشروع.

هل كانت مفيدة؟

المحلول

الكوارتز هو الحل الأكثر شهرة لجدولة العمليات في بيئات جافا، ولكن لديك الكثير من الخيارات.تحقق من هذه القائمة:

كوارتز هو نظام جدولة وظائف مفتوح المصدر يمكن دمجه مع أي تطبيق J2EE أو J2SE أو استخدامه جنبًا إلى جنب تقريبًا.يمكن استخدام الكوارتز لإنشاء جداول زمنية بسيطة أو معقدة.

جكرونتاب تم تصميمه ليتم توسيعه وتكامله مع أي مشروع.يقرأ ويخزن المهام المراد تنفيذها في ملف أو قاعدة بيانات أو EJB ويوفر واجهة مستخدم ويب وواجهة مستخدم رسومية أساسية.

Essiembre J2EE جدولة هي آلية جدولة مهمة بسيطة لتطبيقات J2EE.يمكن اعتبار هذه المكتبة مجمّعًا حول فئتي Timer وTimerTask الموجودتين في Java API القياسية.تكوين المهام التي سيتم تنفيذها وتكرارها يعتمد على XML.

cron4j هو برنامج جدولة لمنصة Java 2 وهو مشابه جدًا لبرنامج UNIX cron daemon.

وظيفة غريبةالهدف هو توفير بعض النظام والرؤية لجميع الملفات الدفعية ووظائف cron التي تربط العمليات التجارية الهامة للمؤسسة معًا.

نقطة ارتكاز جدولة يوفر خدمة جدولة.وهو يعتمد على TurbineScheduler المتوفر مع Turbine، ولكن تمت إزالة كافة العناصر القديمة.حاليًا يتم تنفيذ برنامج الجدولة غير المستمر فقط.يقوم بتحميل المهام المجدولة من ملف تكوين المكون xml.

Gos4j -الجدولة الموجهة نحو الهدف لـ Java- هي طريقة لتنظيم أولويات المعالجة بناءً على الأهداف.

جدولة الوظيفة هو برنامج دفعي يعمل كشيطان، ويمكن التحكم فيه باستخدام واجهة مستخدم رسومية.يستخدم برنامج جدولة المهام تكوين XML للبرامج والبرامج النصية المجدولة ولتوقيت وتكرار معالجة المهام.تتوفر واجهة برمجة التطبيقات (API) التي تتيح لك التحكم في الأحداث وتسجيل الدخول إلى وظائفك.

JDRing هي مكتبة جدولة Java خفيفة الوزن وبسيطة وصغيرة الحجم، ولكنها لا تزال تدعم رنين الإنذارات على فترات زمنية محددة، كأحداث لمرة واحدة، أو في جداول معقدة مع تحكم كامل يشبه cron.

jBatchEngine عبارة عن مخزن مؤقت لمهمة مجمعة مكتوب بلغة Java.على النقيض من برامج الجدولة التي تعتمد على الوقت مثل Cron، فإن jBatchEngine يعتمد على الأحداث.

MyBatchFramework هو إطار عمل خفيف الوزن ومفتوح المصدر مصمم لإنشاء برامج مجمعة قوية ويمكن التحكم فيها بسهولة بلغة Java.

سوبر مع SuperScheduler و SuperWatchdog هو برنامج جدولة مهام Java مع واجهة المستخدم الرسومية الغنية لجميع التطبيقات.إنها منصة محايدة.من الجيد بشكل خاص أن تكون مُجدولًا للوظائف لنظامي Linux و Solaris.يوفر مجموعة رائعة من وظائف برنامج جدولة Microsoft Windows.ويوفر جدولة الحدث.يمكنه جدولة المهام في بيئة موزعة.سيتم تنفيذ المهمة مرة واحدة فقط بين جميع الأجهزة الموجودة في الشبكة.جميع المهام قابلة للتعديل في العطلة.حتى كل وظيفة هي وظيفة الاستعداد، فإن التاريخ سيكون بمثابة أثر جيد للمهام الهامة.وهو يدعم التدويل.

مصدر: برامج جدولة الوظائف مفتوحة المصدر في Java

نصائح أخرى

انظر إلى Timertask و Timer - كلاهما في هذا الإصدار من JDK.

Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

اضبطه على تشغيل التاريخ الأول الذي تريده ثم عدد مللي ثانية في يوم واحد كما تأخيرك.

هل من الممكن لك استخدام مكتبة مثل Cron4J.ب سوف تجعل عملك أسهل بكثير!

  • يمكن ل Timers Java تشغيل وظيفة تعسفية على فترات، أوقات محددة مسبقا، إلخ.
  • كوارتز مكتبة
  • إذا كنت تريد حقا أن تكون عظام عارية حول هذا الموضوع، فافلفها في برنامج نصي شل ووضعها في كرون.

يجب عليك استخدام كوارتز

لم أكن أعرف أبدا من يطلق كوارتز في المركز الأول رغم ذلك.

إذا كان لديك خادم تطبيق أو قطعة أثرية مماثلة يمكنك تكوين مهمة الكوارتز هناك ولديها تشغيل مهمتك في وقت معين.

ربما، هذا المنصب الحديث يساعدك:

هل سيؤدي هذا إلى إيقاف مؤشر موضوع Java الخاص بي لمدة دقيقة؟

يتم استخدام إجابي لهذا السؤال جافا مبني في التنفيذ بناء على فئات java.util.time و java.util.timertask:هل سيؤدي هذا إلى إيقاف مؤشر موضوع Java الخاص بي لمدة دقيقة؟

أو، يمكنك استخدام خدمة Crontab لمنصات * NIX (متوفرة لمنصات Windows أيضا). هذا هو أبسط وأسلوب خفيف الوزن لتشغيل وظيفة مستقلة بشكل دوري.

]'س،

والماضي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top