وظيفة Java Quartz داخل حاوية

Scheduled the first java Quartz job successfully with the instructions mentioned in - http://quartz-scheduler.org/documentation/quartz-2.1.x/examples/Example1

Since its a standalone application, we are using main method. I want to make it a container managed one. So, i added the code as per the instructions in - http://quartz-scheduler.org/documentation/quartz-2.1.x/cookbook/ServletInitScheduler

لكنني غير قادر على تشغيل المهمة تلقائيا في الوقت المحدد ، في بيئة الحاوية. لا يزال يتعين علي استخدام الطريقة الرئيسية وتشغيل المهمة يدويا.

من فضلك توحي لي حلا لهذا.

Here is the link for the quartz scheduler code. https://gist.github.com/60b236e7fd1432c76248

2
نعم ، يتم بدء تشغيل servlet وعندما يبدأ خادم tomcat ، وإدخاله في طريقة تنفيذ الفصل الذي ينفذ واجهة الوظيفة. يتم تخزين وظائف في قاعدة البيانات ، داخل الجدول QRTZ_JOB_DETAILS
وأضاف المؤلف Sangram Anand, مصدر
أنا على الحصول على هذه الرسالة في أباتشي القط سجلات - 28 يونيو 2012 15:52:45 org.apache.catalina.core.ApplicationContext تسجيل INFO: QuartzInitializer: تخزين جدولة مصنع الكوارتز في سياق بريمج في المفتاح: org.quartz .impl.StdSchedulerFactory.KEY
وأضاف المؤلف Sangram Anand, مصدر
إضافة رابط للتعليمات البرمجية في السؤال.
وأضاف المؤلف Sangram Anand, مصدر
حتى الآن كنت تستخدم CronTriggerExample.java كما هو الحال في رابط الشفرة ، لإطلاق المهمة. لكن هذا كان نهجا مستقلا. ولكن من أجل وضعه في حاوية tomcat كيفية البدء؟
وأضاف المؤلف Sangram Anand, مصدر
هل بدء تشغيل servlet على ما يرام؟ أين يتم تخزين مهامك؟ في الذاكرة أو في قاعدة بيانات؟
وأضاف المؤلف davidfrancis, مصدر
"وإدخالها في طريقة تنفيذ الفصل الذي ينفذ واجهة العمل" -> لذا فإن حاوية الويب تقوم بتشغيل وظائفك؟ قد تحتاج إلى إظهار بعض الشفرات في السؤال ، مثل: كيف يمكنك فعلًا إخراج الوظائف داخل هذه الطريقة "الرئيسية".
وأضاف المؤلف davidfrancis, مصدر
أستطيع أن أرى الرمز ، شكرا على ذلك. فهل أنت ترسل وظيفة وتخزنها في جداول JDBC؟ ثم قمت بتشغيل Tomcat و servlet يجب أن تبدأ كوارتز ، فإنه يجب أن تلتقط هذه المهمة وتنفيذها. بالضبط كيف يتم تقديم الوظيفة؟ داخل servlet آخر أو خارجيا بطريقة أو بأخرى؟
وأضاف المؤلف davidfrancis, مصدر

1 إجابة

أعتقد أن لديك مشكلتين للفرز.

  1. تحقق من مستندات الكوارتز وقم بتعديل web.xml لاستخدام أسلوب المستمع أو servlet. لديك الآن كلاهما.

    </لى>
  2. تحتاج إلى servlet آخر لتشغيل داخل tomcat لإنشاء وظيفة. جوجل لكيفية إنشاء servlet بسيط أو اطلب المزيد من المعلومات. يجب عليك الاستيلاء على مصنع الجدولة التي تم إنشاؤها من قبل servack quartz init - التحقق من javadocs لخلية init الكوارتز لكيفية القيام بذلك. أنها تجعلها متاحة في سياق servlet لل servlets الأخرى لانتزاع

1
وأضاف
نعم! إضافة فئة java التي تقوم بتنفيذ ServletContextListener وتهيئة Quote Scheduler @ startup، Storing jobs في Jobstore .. وأضاف أنه في web.xml. شكرا لدعمكم جميعا..:)
وأضاف المؤلف Sangram Anand, مصدر