Advertisement
Guest User

Untitled

a guest
Jul 29th, 2014
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.50 KB | None | 0 0
  1. public class SchedulerServlet extends GenericServlet {
  2.  
  3. private static Boolean isLoaded = Boolean.FALSE;
  4.  
  5. @Override
  6. public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
  7. }
  8.  
  9. @Override
  10. public String getServletInfo() {
  11. return null;
  12. }
  13.  
  14. private void scheduleCronJob(String ejbName, String methodName, String cronExpr) {
  15. final String jobName = "quartz job: " + ejbName + "." + methodName;
  16. System.out.println("SchedulerServlet.scheduleCronJob: ejbName: "+ ejbName +" methodname: "+ methodName +" cronExpr: "+ cronExpr ); //asd
  17. CronTrigger cronTrigger = new CronTrigger(jobName, "Quartz Trigger");
  18. try {
  19. cronTrigger.setCronExpression(cronExpr);
  20. scheduleJob(ejbName, methodName, cronTrigger, "-cron");
  21. } catch (Exception ex) {
  22. System.out.println("STATE : " + "scheduleCronJob fonksiyonunda hata var.") ;
  23. Logger.getLogger(SchedulerServlet.class.getName()).log(Level.SEVERE, null, ex);
  24. }
  25. }
  26.  
  27. private void scheduleSimpleJob(String ejbName, String methodName, Date time) {
  28. System.out.println("SchedulerServlet.scheduleSimpleJob: ejbName: "+ ejbName +" methodname: "+ methodName +" time: "+ time ); //asd
  29. final String jobName = "quartz job: " + ejbName + "." + methodName;
  30. SimpleTrigger simpleTrigger = new SimpleTrigger(jobName, "Quartz Trigger", time);
  31. try {
  32. scheduleJob(ejbName, methodName, simpleTrigger, "-simple");
  33. } catch (Exception ex) {
  34. System.out.println("STATE : " + "scheduleSimpleJob fonksiyonunda hata var.") ;
  35. Logger.getLogger(SchedulerServlet.class.getName()).log(Level.SEVERE, null, ex);
  36. }
  37. }
  38.  
  39. private void scheduleJob (String ejbName, String methodName, Trigger trigger, String tail) throws SchedulerException {
  40. try {
  41. final String jobName = "quartz job: " + ejbName + "." + methodName + tail;
  42. JobDetail jd = new JobDetail(jobName , "Quartz Job", GFv3EJBInvokerJob.class);
  43. jd.getJobDataMap().put("ejb", "java:module/"+ejbName);
  44. jd.getJobDataMap().put("method", methodName);
  45. System.out.println("SchedulerServlet.scheduleJob: ejbName: "+ ejbName +" methodname: "+ methodName +" trigger: "+ trigger +" tail: "+tail); //asd
  46. Scheduler sched = StdSchedulerFactory.getDefaultScheduler();
  47. sched.scheduleJob(jd, trigger);
  48. Logger.getLogger(SchedulerServlet.class.getName()).log(Level.INFO, null, jobName + " is scheduled...");
  49. } catch ( Exception ex ) {
  50. System.out.println("STATE : " + "scheduleJob fonksiyonunda hata var.") ;
  51. }
  52. }
  53.  
  54.  
  55. @Override
  56. public synchronized void init(ServletConfig config) throws ServletException {
  57.  
  58. if (!isLoaded) {
  59. super.init(config);
  60. System.out.println("SchedulerServlet.init: "+config.toString()); //asd
  61. scheduleCronJob("OFReportTimeoutService", "ofTimeout", "*/15 * * * * ?");//Seconds, Minutes, Hours, Day of month, Month, Day of week, Year
  62.  
  63. scheduleCronJob("ScheduledReportTimeoutService", "protectionInformationTimeout", "0 0 */3 * * ?");
  64. Calendar now = new GregorianCalendar();
  65. if (!(now.get(Calendar.HOUR)%3 == 2 && now.get(Calendar.MINUTE) > 40)) {
  66. now.add(Calendar.MINUTE, 5);
  67. scheduleSimpleJob("ScheduledReportTimeoutService", "protectionInformationTimeout", now.getTime());
  68. }
  69.  
  70. scheduleCronJob("ScheduledReportTimeoutService", "dailyTimeout", "0 0 4 * * ?");
  71.  
  72. scheduleCronJob("ScheduledReportTimeoutService", "weeklyTimeout", "0 15 4 ? * MON");
  73.  
  74. scheduleCronJob("ScheduledReportTimeoutService", "monthlyTimeout", "0 0 4 1 * ?");
  75.  
  76. scheduleCronJob("ScheduledReportTimeoutService", "yearlyTimeout", "0 0 4 1 1 ?");
  77.  
  78. isLoaded = Boolean.TRUE;
  79. }
  80. else {
  81. System.out.println("STATE : " + "synchronized isn't running. isLoaded = TRUE") ;
  82. System.out.println("STATE : " + "OFReportTimeoutService and protectionInformationTimeout services can't run.") ;
  83. System.out.println("STATE : " + "synchronized isn't running. ") ;
  84. Logger.getLogger(SchedulerServlet.class.getName()).log(Level.SEVERE, null, " isn't scheduled...");
  85. }
  86. }
  87. }
  88.  
  89. scheduleCronJob("ScheduledReportTimeoutService", "dailyTimeout", "0 0 4 * * ?");
  90.  
  91. scheduleCronJob("ScheduledReportTimeoutService", "weeklyTimeout", "0 15 4 ? * MON");
  92.  
  93. scheduleCronJob("ScheduledReportTimeoutService", "monthlyTimeout", "0 0 4 1 * ?");
  94.  
  95. scheduleCronJob("ScheduledReportTimeoutService", "yearlyTimeout", "0 0 4 1 1 ?");
  96.  
  97. scheduleCronJob("ScheduledReportTimeoutService", "weeklyTimeout", "0 15 4 ? * MON");
  98.  
  99. scheduleCronJob("ScheduledReportTimeoutService", "dailyTimeout", "0 0 4 * * ?");
  100.  
  101. scheduleCronJob("ScheduledReportTimeoutService", "monthlyTimeout", "0 0 4 1 * ?");
  102.  
  103. scheduleCronJob("ScheduledReportTimeoutService", "yearlyTimeout", "0 0 4 1 1 ?");
  104.  
  105. <servlet>
  106. <servlet-name>QuartzInitializer</servlet-name>
  107. <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
  108. <load-on-startup>1</load-on-startup>
  109. </servlet>
  110.  
  111. <servlet>
  112. <servlet-name>QuartzServlet</servlet-name>
  113. <servlet-class>com.xyz.SampleSchedulerServlet</servlet-class>
  114. <init-param><param-name>firstCronExpr</param-name><param-value>7 0/1 * * * ?</param-value></init-param>
  115. <init-param><param-name>secondCronExpr</param-name><param-value>7 0/20 * * * ?</param-value></init-param>
  116. <load-on-startup>2</load-on-startup>
  117. </servlet>
  118.  
  119. import java.io.IOException;
  120. import java.util.logging.Level;
  121. import java.util.logging.Logger;
  122.  
  123. import javax.servlet.GenericServlet;
  124. import javax.servlet.ServletConfig;
  125. import javax.servlet.ServletException;
  126. import javax.servlet.ServletRequest;
  127. import javax.servlet.ServletResponse;
  128.  
  129. import org.quartz.CronTrigger;
  130. import org.quartz.JobDetail;
  131. import org.quartz.Scheduler;
  132. import org.quartz.impl.StdSchedulerFactory;
  133.  
  134.  
  135. public class SampleSchedulerServlet extends GenericServlet {
  136. private static Logger log = Logger.getLogger(SampleSchedulerServlet.class.getName());
  137.  
  138. private static final long serialVersionUID = 1L;
  139. private static final String FIRST_JOB_NAME = "First Sample Scheduler Job";
  140. private static final String FIRST_GROUP_NAME = "First Sample Scheduler Group";
  141. private static final String FIRST_TRIGGER_NAME = "First Sample Scheduler Trigger";
  142. private static final String SECOND_JOB_NAME = "Second Sample Scheduler Job";
  143. private static final String SECOND_GROUP_NAME = "Second Sample Scheduler Group";
  144. private static final String SECOND_TRIGGER_NAME = "Second Sample Scheduler Trigger";
  145.  
  146. public void init(ServletConfig config) throws ServletException {
  147. super.init(config);
  148. log.log(Level.INFO, "Invoking scheduler for Sample..");
  149. try {
  150. String cronExpression = getInitParameter("firstCronExpr");
  151. Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
  152. CronTrigger cronTrigger = new CronTrigger(FIRST_TRIGGER_NAME, FIRST_GROUP_NAME, cronExpression);
  153. JobDetail jobDetail = new JobDetail(FIRST_JOB_NAME, FIRST_GROUP_NAME, SomeClass.class);
  154. scheduler.scheduleJob(jobDetail, cronTrigger);
  155.  
  156. cronExpression = getInitParameter("secondCronExpr");
  157. scheduler = StdSchedulerFactory.getDefaultScheduler();
  158. cronTrigger = new CronTrigger(SECOND_TRIGGER_NAME, SECOND_GROUP_NAME, cronExpression);
  159. jobDetail = new JobDetail(SECOND_JOB_NAME, SECOND_GROUP_NAME, SomeClass.class);
  160. scheduler.scheduleJob(jobDetail, cronTrigger);
  161.  
  162. log.log(Level.INFO, "Sample Timer scheduled...");
  163. } catch (Exception e) {
  164. log.log(Level.SEVERE, "Problem invoking SampleSchedulerServlet to schedule the Sample jobs..");
  165. e.printStackTrace();
  166. }
  167. }
  168.  
  169. public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
  170. }
  171.  
  172. public String getServletInfo() {
  173. return null;
  174. }
  175.  
  176. public void destroy() {
  177. try {
  178. Scheduler sched = StdSchedulerFactory.getDefaultScheduler();
  179. sched.shutdown();
  180. log.log(Level.INFO, "Shutting down Sample scheduler - Successful !");
  181. } catch (Exception e) {
  182. log.log(Level.SEVERE, "Shutting down Sample scheduler - FAILED !");
  183. e.printStackTrace();
  184. }
  185. }
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement