使用Quartz 2.2.2
春天4.2.4.RELEASE
如何配置石英?,仅使用全部注解
OK启动我的系统
问题包括2 jobFactory为系统
@Configuration(value = "springConfigContext")
@EnableAspectJAutoProxy
@EnableTransactionManagement
@ApplicationScoped
@EnableAsync
@EnableScheduling
@ComponentScan(basePackages = {"com", })
@ImportResource({ "classpath:springBeans.xml" })
@PropertySources({ @PropertySource("classpath:/META-INF/my_file_properties.properties") })
public class SpringConfigContext extends AnnotationConfigApplicationContext implements BeanFactory{
@Bean
public MethodInvokingJobDetailFactoryBean methodInvokingJobDetailFactoryBean(){
//my code
}
@Bean
public SimpleTriggerFactoryBean simpleTriggerFactoryBean(){
//my code
}
@Bean
public JobDetailFactoryBean jobDetailFactoryBean(){
//my code
}
@Bean
public CronTriggerFactoryBean cronTriggerFactoryBean() throws ParseException{
//my code
}
@Bean(name = "springQuartzScheduler")
public SchedulerFactoryBean schedulerFactoryBean() throws Exception{
SchedulerFactoryBean scheduler = new SchedulerFactoryBean();
CronTrigger trigger = cronTriggerFactoryBean().getObject();
scheduler.setTriggers(simpleTriggerFactoryBean().getObject(), trigger);
Properties propertie = new Properties();
propertie.setProperty("org.quartz.threadPool.threadCount", "3");
propertie.setProperty("org.quartz.threadPool.threadPriority", "3");
scheduler.setQuartzProperties(propertie);
scheduler.setOverwriteExistingJobs(true);
scheduler.setApplicationContext(this);
scheduler.start();
return scheduler;
}
}
方法public SchedulerFactoryBean schedulerFactoryBean()的第一个构建
我想其他班级的第二个建造,春天!
我的Quartz配置属性是:
org.quartz.scheduler.skipUpdateCheck=true
org.quartz.scheduler.instanceName=schedulerFactoryBean
org.quartz.scheduler.jobFactory.class=org.springframework.scheduling.quartz.AdaptableJobFactory
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=5
org.quartz.threadPool.threadPriority=5
我尝试使用与bean“ springQuartzScheduler”或schedulerFactoryBean相同的名称,但是不起作用。
看到问题的图片
如何参数化仅使用一个工厂?
最佳答案
找到并解决了我的问题,当我删除了一个用于监视生产环境中的project.war的工件maven调用javamelody,net.bull.javamelody.MonitoringFilter时。如果您有另一个工件具有相同的命题,则应负责创建新的新工厂Quartz实例
因此,如果您有类似的问题2 JobFactory Bean,请评估它们的工件,它们可能负责生成一个以上的工厂Quartz实例,因为Quartz没有VM的工厂bean单例,因此在调用它时会创建一个新工厂。文件quartiz.properties的相同属性,但在其他上下文中使用时。
怎么发现问题?将logback置于模式日志跟踪中,这样您将看到被调用的工厂Quartz,删除索引或进行调整,以便它们使用相同的工厂