The code to use two jobs....Its creating same bean. I am not sure how the injection works here.Its giving the error...........................................................................................................................................................................................................
@Configuration
public class QuartzBeans {
// frequencyInSec can be read through property file of can be set setter
// method.
int frequencyInSec = 10;
public void setFrequencyInSec(int frequencyInSec) {
this.frequencyInSec = frequencyInSec;
}
@Autowired
private ApplicationContext applicationContext;
/*
* @PostConstruct public void init() {
* logger.info("Hello world from Spring..."); }
*/
Logger logger = LoggerFactory.getLogger(getClass());
@Bean
public SpringBeanJobFactory springBeanJobFactory() {
AutoWiringSpringBeanJobFactory jobFactory = new AutoWiringSpringBeanJobFactory();
logger.debug("Configuring Job factory");
jobFactory.setApplicationContext(applicationContext);
return jobFactory;
}
@Bean
public SchedulerFactoryBean scheduler(Trigger[] trigger, JobDetail[] job) {
SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean();
schedulerFactory.setConfigLocation(new ClassPathResource("quartz.properties"));
logger.debug("Setting the Scheduler up");
schedulerFactory.setJobFactory(springBeanJobFactory());
schedulerFactory.setJobDetails(job);
schedulerFactory.setTriggers(trigger);
return schedulerFactory;
}
@Bean(name = "jobb")
@Scope("prototype")
public JobDetailFactoryBean jobDetail() {
JobDetailFactoryBean jobDetailFactory = new JobDetailFactoryBean();
jobDetailFactory.setJobClass(SampleJob.class);
jobDetailFactory.setName("Qrtz_Job_Detail");
jobDetailFactory.setDescription("Invoke Sample Job service...");
jobDetailFactory.setDurability(true);
return jobDetailFactory;
}
/*
* @Autowired JobDetailFactoryBean jobDetail1;
*
* @Autowired JobDetailFactoryBean jobDetail;
*
* @Autowired SimpleTriggerFactoryBean trigger2;
*
* @Autowired SimpleTriggerFactoryBean trigger;
*/
@Bean(name = "jobb5")
@Scope("prototype")
public JobDetailFactoryBean jobDetail1() {
JobDetailFactoryBean jobDetailFactory = new JobDetailFactoryBean();
jobDetailFactory.setBeanName("bean33");
jobDetailFactory.setJobClass(SampleJob2.class);
jobDetailFactory.setName("Qrtz_Job_Detail2d");
jobDetailFactory.setDescription("Invoke Sample Job service2...");
jobDetailFactory.setDurability(true);
return jobDetailFactory;
}
/*
* @Bean public SimpleTriggerFactoryBean trigger2(JobDetail job) {
*
* SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean();
* trigger.setJobDetail(job);
*
* int frequencyInSec = 4;
* logger.info("Configuring trigger to fire every {} seconds",
* frequencyInSec);
*
* trigger.setRepeatInterval(frequencyInSec * 1000);
* trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
* trigger.setName("Qrtz_Trigger"); return trigger; }
*/
@Bean(name = "helldo")
public SimpleTriggerFactoryBean trigger(JobDetail job) {
SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean();
trigger.setJobDetail(job);
logger.info("Configuring trigger to fire every {} seconds", frequencyInSec);
trigger.setRepeatInterval(frequencyInSec * 1000);
trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
trigger.setName("Qrtz_Trigger2");
return trigger;
}
@Bean(name = "helld2")
public SimpleTriggerFactoryBean trigger2(JobDetail job) {
SimpleTriggerFactoryBean trigger2 = new SimpleTriggerFactoryBean();
trigger2.setBeanName("bean1");
trigger2.setJobDetail(job);
logger.info("Configuring trigger to fire every {} seconds", frequencyInSec);
trigger2.setRepeatInterval(frequencyInSec * 1000);
trigger2.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
trigger2.setName("Qrtz_Trigger23");
return trigger2;
}
}
Unsatisfied dependency expressed through method 'trigger' parameter 0: No qualifying bean of type [org.quartz.JobDetail] is defined: expected single matching bean but found 2: jobb5,jobb; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [org.quartz.JobDetail] is defined: expected single matching bean but found 2: jobb5,jobb