admin管理员组文章数量:1640433
问题背景:定时任务更新离职的员工在系统的有效期
思路:使用spring自带的定时任务实现,简单,一个注解搞定-- @Schedule
踩坑开始:
由于是老项目,spring mvc,spring 版本4.2.0.RELEASE,没有spring boot自带的注解便捷,所以得按照老路,把需要的bean注入
<els-base.version>0.0.1-SNAPSHOT</els-base.version>
<els-base-wt.version>0.0.1</els-base-wt.version>
<project.build.sourceEncoding>GBK</project.build.sourceEncoding>
<spring.version>4.2.0.RELEASE</spring.version>
坑点1:按照正常使用注解 spring boot 方式,不生效
@Configurable
@EnableScheduling
public class ScheduleJob {
@Scheduled(cron = "*/3 * * * * *")
public void updateSsoUserInfo() {
System.out.println("3秒执行一次");
}
}
原因:spring 版本不支持
坑点2:使用spring 注入bean的方式,也不生效
@Service
public class ScheduleJob {
@Scheduled(cron = "*/5 * * * * *")
public void updateSsoUserInfo() {
System.out.println("5秒执行一次");
}
}
原因:由于是老项目,需要扫描到使用注解@service的包,@Service和@Schedule一起搭配, 问题解决
<!-- 自动扫描(自动注入),扫描com.els.service这个包以及它的子包的所有使用@Service注解标注的类 -->
<context:component-scan base-package="com.els.service,com.els.*.service, com.els.job" />
后续:等有时间了再深入研究下spring不同版本对定时任务的原理
本文标签: schedule
版权声明:本文标题:记录一次排查@Schedule不生效的问题 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1725782278a1042331.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论