欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

quartz调度器执行两次问题

程序员文章站 2022-05-26 13:21:31
...

在项目中配置了调度器

quartz后,每次都执行两次,网查了一些办法说是配置文件加载两次的问题查找的原因是 ContextLoaderListener 和 DispatcherServlet 对应用上下文重复加载,导致问题出现。

经过排查了下  这个问题还是照样执行两次,所以我的问题以上解决不了,然后经过反复查看代码

发现

@Override
	protected  void executeInternal(JobExecutionContext arg0)  {
		
		log.info("RemindJob have bean started... ");
		ProjectTaskService projectTaskService = (ProjectTaskService) SpringHelper.getBean("cn.utec.server.manager.service.ProjectTaskService");
		projectTaskService.duRemindJob();


	}

 代码中executeInternal方法是不能用SpringHelper.getBean这种形式来装配的,这样装配会加载两次service导致,把这行去掉 ,改成SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);然后@Autowired自动装配就可以了,大功告成