Ladies_Man

quartz factory

Dec 7th, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.15 KB | None | 0 0
  1. package ru.pochta.abon.config;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.ComponentScan;
  6. import org.springframework.context.annotation.Configuration;
  7. import org.springframework.context.annotation.PropertySource;
  8. import org.springframework.core.env.Environment;
  9. import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
  10. import org.springframework.scheduling.quartz.JobDetailFactoryBean;
  11. import org.springframework.scheduling.quartz.SchedulerFactoryBean;
  12. import ru.pochta.abon.job.CheckBoxReleaseDateJob;
  13. import ru.pochta.abon.job.CheckClaimLastUpdateDateJob;
  14. import ru.pochta.abon.job.TestQuartztJob;
  15.  
  16. @Configuration
  17. @ComponentScan(value = {"ru.pochta.abon.job"})
  18. @PropertySource("classpath:quartz.properties")
  19. public class QuartzConfig {
  20.  
  21.     @Autowired
  22.     Environment environment;
  23.  
  24.     //-- this will be removed (Just simple example)
  25.     @Bean
  26.     public JobDetailFactoryBean jobDetailFactoryBean() {
  27.         JobDetailFactoryBean jobDetail = new JobDetailFactoryBean();
  28.         jobDetail.setJobClass(TestQuartztJob.class);
  29.         jobDetail.setGroup("AbonJob");
  30.         jobDetail.setName("Test");
  31.         return jobDetail;
  32.     }
  33.  
  34.     @Bean
  35.     public CronTriggerFactoryBean cronTriggerFactoryBean(){
  36.         CronTriggerFactoryBean cronTrigger = new CronTriggerFactoryBean();
  37.         cronTrigger.setJobDetail(jobDetailFactoryBean().getObject());
  38.         cronTrigger.setStartDelay(3000);
  39.         cronTrigger.setName("testTrigger");
  40.         cronTrigger.setGroup("AbonTrigger");
  41.         cronTrigger.setCronExpression("0 0/1 * 1/1 * ? *");
  42.         return cronTrigger;
  43.     }
  44.     // --
  45.  
  46.     @Bean
  47.     public JobDetailFactoryBean checkBoxReleaseDateJobDetail() {
  48.         JobDetailFactoryBean jobDetail = new JobDetailFactoryBean();
  49.         jobDetail.setJobClass(CheckBoxReleaseDateJob.class);
  50.         jobDetail.setGroup(environment.getRequiredProperty("jobDetailGroup"));
  51.         jobDetail.setName(environment.getRequiredProperty("checkBoxReleaseDateJobDetail.name"));
  52.         return jobDetail;
  53.     }
  54.  
  55.     @Bean
  56.     public CronTriggerFactoryBean checkBoxReleaseDateCronTrigger(){
  57.         CronTriggerFactoryBean cronTrigger = new CronTriggerFactoryBean();
  58.         cronTrigger.setJobDetail(checkBoxReleaseDateJobDetail().getObject());
  59.         cronTrigger.setStartDelay(3000);
  60.         cronTrigger.setGroup(environment.getRequiredProperty("cronTriggerGroup"));
  61.         cronTrigger.setName(environment.getRequiredProperty("checkBoxReleaseDateCronTrigger.name"));
  62.         cronTrigger.setCronExpression(environment.getRequiredProperty("checkBoxReleaseDateCronTrigger.cronExpression"));
  63.         return cronTrigger;
  64.     }
  65.  
  66.  
  67.     @Bean
  68.     public JobDetailFactoryBean checkClaimLastUpdateDateJobDetail() {
  69.         JobDetailFactoryBean jobDetail = new JobDetailFactoryBean();
  70.         jobDetail.setJobClass(CheckClaimLastUpdateDateJob.class);
  71.         jobDetail.setGroup(environment.getRequiredProperty("jobDetailGroup"));
  72.         jobDetail.setName(environment.getRequiredProperty("checkClaimLastUpdateDateJobDetail.name"));
  73.         return jobDetail;
  74.     }
  75.  
  76.     @Bean
  77.     public CronTriggerFactoryBean checkClaimLastUpdateDateCronTrigger(){
  78.         CronTriggerFactoryBean cronTrigger = new CronTriggerFactoryBean();
  79.         cronTrigger.setJobDetail(checkClaimLastUpdateDateJobDetail().getObject());
  80.         cronTrigger.setStartDelay(3000);
  81.         cronTrigger.setGroup(environment.getRequiredProperty("cronTriggerGroup"));
  82.         cronTrigger.setName(environment.getRequiredProperty("checkClaimLastUpdateDateCronTrigger.name"));
  83.         cronTrigger.setCronExpression(environment.getRequiredProperty("checkClaimLastUpdateDateCronTrigger.cronExpression"));
  84.         return cronTrigger;
  85.     }
  86.  
  87.     @Bean
  88.     public SchedulerFactoryBean schedulerFactoryBean() {
  89.         SchedulerFactoryBean scheduler = new SchedulerFactoryBean();
  90.         if (environment.getRequiredProperty("quartz.scheduler.enable").equals("true")) {
  91.             scheduler.setTriggers(checkBoxReleaseDateCronTrigger().getObject());
  92.         }
  93.         return scheduler;
  94.     }
  95.  
  96.  
  97. }
Advertisement
Add Comment
Please, Sign In to add comment