前段时间做了个定时任务的需求,今天刚好有空,就分享一下经验。
需求是这样的:如果这个系统的用户有正在执行的任务,那么在十一点半的时候(当然是因为下班了)把这个任务给暂停掉,在一点钟重启这个任务,五点彻底停掉。
总的来说,就是要后台设置定时任务,根据预先设定好的时间执行,也就是在这个需求下,了解到了SpringTask,特在此进行记录。
使用起来其实也很简单,步骤如下
1、在启动类上加上这个注解,表示允许定时任务。 @EnableScheduling
2、创建一个类交由spring管理,不创建也可以,然后写一个定时方法,一定要要在被spring管理的类
我是自己建了个类,加上了注解,@Component表示交由spring管理
最重要的是这个,@Scheduled(cron = "0 0 13 * * *")
@Scheduled表示是个定时任务
cron表达式是任务执行时间和方式,至于corn怎么用,可以用下面的链接,也可以自己搜一搜,弄明白最好
@Component public class ScheduledTask {@Autowired private ITaskLogService taskLogService;/** * 每天一点钟的时候重启中午11点半暂停的任务 */ @Scheduled(cron = "0 0 13 * * *") public void restartTask(){ taskLogService.restartTaskAtThirteen(); }}