springboot定时任务@schedule
时间: 2023-07-06 08:34:27 浏览: 199
是一种可以在Spring Boot应用程序中使用的定时任务注解。使用@Scheduled注解,可以轻松地在指定的时间间隔或特定的时间点执行任务。
下面是一个简单的例子,演示如何在Spring Boot应用程序中使用@Scheduled注解:
```
@Component
public class MyScheduledTask {
@Scheduled(fixedRate = 5000)
public void runTask() {
System.out.println("Scheduled task is running...");
}
}
```
上面的代码中,我们创建了一个名为MyScheduledTask的组件,并使用@Scheduled注解来指定任务的执行时间。在这个例子中,我们指定任务每隔5秒钟就会执行一次,输出一行文本。
使用@Scheduled注解时,可以指定多种不同的执行方式,例如 fixedRate、fixedDelay、cron 等。可以根据自己的需求选择不同的方式。
相关问题
springboot定时任务@schedule 执行固定次数
@Scheduled 注解本身并没有提供执行固定次数的功能,但是我们可以通过在任务中增加一个计数器来实现该需求。
例如,我们可以定义一个计数器变量,每次任务执行时计数器加一,当计数器达到指定次数后,我们可以通过调用 ScheduledFuture 的 cancel 方法来取消定时任务的执行。
下面是一个示例代码,演示如何在 Spring Boot 应用程序中实现执行固定次数的定时任务:
```
@Component
public class MyScheduledTask {
private int count = 0;
private ScheduledFuture<?> scheduledFuture;
@Autowired
private ThreadPoolTaskScheduler taskScheduler;
@PostConstruct
public void init() {
scheduledFuture = taskScheduler.schedule(this::runTask, new CronTrigger("0/5 * * * * ?"));
}
private void runTask() {
count++;
System.out.println("Scheduled task is running... Count: " + count);
if (count >= 10) {
scheduledFuture.cancel(false);
}
}
}
```
在上面的代码中,我们定义了一个 count 变量来记录任务执行的次数,并在任务执行时将其加一。当 count 达到 10 后,我们通过调用 ScheduledFuture 的 cancel 方法来取消任务的执行。在 init 方法中,我们使用 ThreadPoolTaskScheduler 来创建定时任务,并指定任务的执行时间为每隔 5 秒执行一次。
springboot定时任务schedule
Spring Boot提供了对定时任务的支持,可以使用@Scheduled注解来配置定时任务。@Scheduled注解可以放在类上或方法上,当放在类上时,该类中所有标记了@Scheduled注解的方法都将被定时执行。
@Scheduled(fixedRate = 5000)
public void scheduleTaskWithFixedRate() {
// ...
}
@Scheduled(fixedDelay = 5000)
public void scheduleTaskWithFixedDelay() {
// ...
}
@Scheduled(cron = "0 * * * * ?")
public void scheduleTaskWithCronExpression() {
// ...
}
需要在启动类上开启定时任务的支持
@EnableScheduling
详细参考官方文档
https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#scheduling
阅读全文