gpt4 book ai didi

java - Quartz(2 jobFactory)Spring 4中如何配置集成

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:53 26 4
gpt4 key购买 nike

  • 使用 Quartz 2.2.2
  • Spring 4.2.4.RELEASE
  • 如何配置quartz?,仅使用全部注释
  • 正常启动我的系统
  • 问题由系统的 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() 的第一个构建我认为是其他类的第二个版本,Spring!

我的 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,但不起作用。

查看问题图片 Imagem 2 factory Quartz

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

最佳答案

当我删除一个工件 maven 调用 javamelody 时,我发现了问题并解决了net.bull.javamelody.MonitoringFilter 用于监视生产中的 project.war。如果您有其他工件相同的主张,应该负责创建新工厂 Quartz 的新实例

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

如何发现问题?把logback放在日志跟踪模式下,这样你会看到Quartz调用的工厂,删除索引或调整以便它们使用相同的工厂

关于java - Quartz(2 jobFactory)Spring 4中如何配置集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36650678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com