使用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 Sc​​hedulerFactoryBean 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相同的名称,但是不起作用。

看到问题的图片
java - Quartz(2 jobFactory)如何在Spring 4中配置集成-LMLPHP

如何参数化仅使用一个工厂?

最佳答案

找到并解决了我的问题,当我删除了一个用于监视生产环境中的project.war的工件maven调用javamelody,net.bull.javamelody.MonitoringFilter时。如果您有另一个工件具有相同的命题,则应负责创建新的新工厂Quartz实例

因此,如果您有类似的问题2 JobFactory Bean,请评估它们的工件,它们可能负责生成一个以上的工厂Quartz实例,因为Quartz没有VM的工厂bean单例,因此在调用它时会创建一个新工厂。文件quartiz.properties的相同属性,但在其他上下文中使用时。

怎么发现问题?将logback置于模式日志跟踪中,这样您将看到被调用的工厂Quartz,删除索引或进行调整,以便它们使用相同的工厂

07-24 09:43
查看更多