使用spring的@Scheduled 标签注释在方法上,需要弄明白cron各个参数啥意思才能设置什么时候进行任务调度
如果图个简单,可以在这里设定好需求,自动生成配置
@Scheduled(cron = "0 0/1 * * * ?") //一分钟运行一次
还需要在配置中找到这个新的未绑定的事务,需要开启扫描包,找到这个类,并加入事物(添加@Transactional), 类上还需要加上
@Transactional
@Component
eclipse兼容贼好,我本地没问题,结果不是服务器就出现空指针异常.找半天才发现配置文件还要开启用事务注解
<tx:annotation-driven transaction-manager="transactionManager"/>
同时还需要配置schedule的相关,在applicationContext.xml中
<!--开启任务调度-->
<task:annotation-driven/>
<!--配置定时器类-->
<bean id="taskJob" class="light.mvc.service.sys.impl.TaskJobService"/>
如果没有配置好schedule,就部署到linux服务器上,可能会报null空指针异常(我是加了druid数据库链接时,没配schedule的xml,然后不管怎么重启tomcat都会有日志打印调了定时器并且一直报异常.困了两三天,因为服务器不能随便重启,重启tomcat又没用)
最后用本地linux系统测出来,schedule绑到了linux进程去了导致的问题,重启了linux服务器后问题解决了
所以,需要在本地都正常了再部署至服务器