SpringBoot创建定时任务的示例详解
作者:青灯文案1
在Spring Boot中创建定时任务,通常使用@Scheduled注解,这是Spring框架提供的一个功能,允许你按照固定的频率(如每天、每小时、每分钟等)执行某个方法,本文给大家介绍了SpringBoot创建定时任务的示例,需要的朋友可以参考下
网上有很多 icon表达式生成器
,可以直接搜索 定时任务icon表达式生成器
,这里就不放链接了。
1、在入口类开启定时任务支持
在 SpringBoot
应用的启动类上,添加 @EnableScheduling
注解来开启定时任务的支持。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableScheduling public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
2、创建定时任务
创建一个包含定时任务方法的类,并在该方法上使用@Scheduled
注解来指定任务的执行频率。
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class ScheduledTasks { // 每5秒执行一次 @Scheduled(fixedRate = 5000) public void doTaskEveryFiveSeconds() { System.out.println("任务每5秒执行一次:" + new Date()); } // 每天的特定时间执行一次 @Scheduled(cron = "0 0 12 * * ?") // 每天中午12点执行 public void doTaskEveryDayAtNoon() { System.out.println("任务每天中午12点执行一次:" + new Date()); } }
fixedRate
属性用于指定任务执行的固定频率(以毫秒为单位)。cron
属性则允许你使用CRON表达式来指定任务的执行时间。
这两个属性在实际的项目开发中都会做到配置文件中,便于修改。
3、配置定时任务线程池(可选)
默认情况下,Spring Boot使用单线程来执行所有的定时任务。如果需要并发执行多个定时任务,或者某个任务执行时间较长不希望阻塞其他任务,可以自定义定时任务的线程池。
在 application.properties
中设置相关配置
spring.task.scheduling.pool.size=5 # 线程池大小,可以用 ${} 配置 spring.task.scheduling.thread-name-prefix=task-scheduler- # 线程名前缀
也可以在配置类中自定义 TaskScheduler
Bean
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; @Configuration public class SchedulerConfig { @Bean public ThreadPoolTaskScheduler threadPoolTaskScheduler() { ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setPoolSize(5); scheduler.setThreadNamePrefix("task-scheduler-"); return scheduler; } }
启动SpringBoot应用,定时任务就会按照指定的频率执行。
请注意,
@Scheduled
注解的方法不应该有任何参数,并且返回类型应该是void
。此外,@Scheduled
注解的方法可以定义在配置类中,但最好将其定义在一个独立的Bean中,以便于测试和管理。
以上就是SpringBoot创建定时任务的示例详解的详细内容,更多关于SpringBoot创建定时任务的资料请关注脚本之家其它相关文章!