Spring中@Schedule的各个参数

159次阅读
没有评论

Spring 中 @Schedule 的各个参数
@Scheduled 是 Spring 框架中用于声明定时任务的注解。在 Springboot 项目项目中,添加 @EnableScheduling 注解到配置类上,@Scheduled 注解就可以生效

通过 @Scheduled 注解,可以非常方便地在 Spring 应用程序中创建定时任务。

以下是对 @Scheduled 注解中常用参数的讲解:

fixedDelay

含义:表示上一次任务执行完毕到下一次任务开始执行之间的延迟时间。
类型:long,单位为毫秒。
示例:@Scheduled(fixedDelay = 5000) 表示任务执行完毕后等待 5 秒再执行下一次任务。

fixedDelayString

含义:与 fixedDelay 类似,但是接收的是一个字符串类型的值,可以方便地通过配置文件来设置。
类型:String,可以是一个时间表达式(如 "5000" 表示 5 秒)。
示例:@Scheduled(fixedDelayString = "${task.fixedDelay}"),其中 ${task.fixedDelay} 可以在配置文件中设置。

fixedRate

含义:表示两次任务开始执行之间的固定时间间隔,不考虑任务执行的实际时间。
类型:long,单位为毫秒。
示例:@Scheduled(fixedRate = 5000) 表示每隔 5 秒执行一次任务,无论任务执行了多久。

fixedRateString

含义:与 fixedRate 类似,但是接收的是一个字符串类型的值,可以方便地通过配置文件来设置。
类型:String,可以是一个时间表达式。
示例:与 fixedDelayString 类似,但适用于固定频率的场景。

initialDelay

含义:表示首次执行定时任务之前的延迟时间。
类型:long,单位为毫秒。
示例:@Scheduled(fixedRate = 5000, initialDelay = 10000) 表示首次任务在启动后延迟 10 秒执行,之后每隔 5 秒执行一次。

initialDelayString

含义:与 initialDelay 类似,但是接收的是一个字符串类型的值,可以方便地通过配置文件来设置。
类型:String,可以是一个时间表达式。
示例:与 fixedDelayString 类似,但用于设置首次执行的延迟时间。

cron

含义:表示定时任务的执行计划,基于 Unix 系统的 cron 表达式。
类型:String,遵循 cron 表达式的语法规则。
示例:@Scheduled(cron = "0 0/5 * * * ?") 表示每 5 小时的第 0 分钟执行一次任务。

使用 @Scheduled 注解时,通常只需要指定 fixedDelay、fixedRate 或 cron 中的一个,来表示任务的执行计划。如果需要从配置文件中读取这些值,则可以使用带 String 后缀的参数(如 fixedDelayString)。

 0
评论(没有评论)
验证码