@Scheduled任务调度/定时任务-非分布式
在Spring Boot中,你可以使用@Scheduled
注解来创建一个非分布式的定时任务。以下是一个简单的例子,展示如何设置一个每5秒执行一次的定时任务。
首先,确保你的Spring Boot应用开启了定时任务的支持,在你的主应用类上添加@EnableScheduling
注解。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class SchedulerApplication {
public static void main(String[] args) {
SpringApplication.run(SchedulerApplication.class, args);
}
}
然后,创建一个定时任务的类,并使用@Scheduled
注解来指定任务的执行周期。
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.format.DateTimeFormatter;
import java.time.LocalDateTime;
@Component
public class ScheduledTasks {
private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
System.out.println("现在时间是:" + dateTimeFormatter.format(LocalDateTime.now()));
}
}
在上面的例子中,@Scheduled
注解的fixedRate
属性设置为5000毫秒(即5秒),意味着reportCurrentTime
方法将会每5秒执行一次。
确保你的Spring Boot版本和Java版本与你的代码兼容。
评论已关闭