VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • springboot+定时任务(四)

正文

回到顶部

1.springboot整合定时任务

首先,该定时任务是基于注解EnableScheduling实现的,实现方式是入门级的。

使用的注解如下:

@EnableScheduling,类注解。用在springboot的启动类中,表示当前服务是支持定时任务的,容器会自动扫描。

@Component,类注解。用在定时任务类中,作为组件被容器扫描。

@Scheduled(fixedRate = 5000),方法注解。用在具体task方法上,后面参数中规定执行时间,比如fixedRate = 5000,就是说 下面的任务 每隔5s执行一次。

具体的实现:

启动类

1
2
3
4
5
6
7
8
@SpringBootApplication
@EnableScheduling
public class ThriftdemoApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(ThriftdemoApplication.class, args);
    }
}

定时任务类

1
2
3
4
5
6
7
8
@Component
public class TestTask {
    private static final SimpleDateFormat dataFormat = new SimpleDateFormat("HH:mm:ss");
    @Scheduled(fixedRate = 5000)
    public void reportCurrent(){
        System.out.println("当前时间:"+dataFormat.format(new Date()));
    }
}

  

回到顶部

2.@Scheduled() 的cron表达式

上面的定时任务的任务执行周期比较死板,使用cron表达式会更加的灵活。当然cron虽然可以支持到“年”,但是springboot是不支持年定时任务的。

cron的定时任务,可以通过前端操作来获取,这是操作页面:https://cron.qqe2.com/

复制这里的Cron 表达式,到@Scheduled() 的小括号中,即可。

比如@Scheduled(cron="18-30 * * * * ?"),从每一分钟的18秒到30秒 执行任务,18到30为闭区间。

原文:https://www.cnblogs.com/ansonwan/p/15480498.html


相关教程