定时器表达式是用来定义定时任务的时间规则。在不同的编程语言或框架中,定时器表达式的语法和规则可能会有所不同。以下是几种常见的定时器表达式示例:
* * * * *
:每分钟执行一次0 * * * *
:每小时的 0 分钟执行一次0 0 * * *
:每天的 0 点整执行一次0 0 12 * *
:每天的中午 12 点整执行一次0 0 8-18/2 * *
:每天早上 8 点到下午 6 点之间每隔两个小时执行一次*/10 * * * *
:每隔 10 分钟执行一次0 */2 * * *
:每隔 2 小时执行一次0 0 */3 * *
:每隔 3 天执行一次0 0 0 */2 *
:每隔 2 个月执行一次@yearly
?或?@annually
:每年执行一次(等同于?0 0 1 1 *
)@monthly
:每月执行一次(等同于?0 0 1 * *
)@weekly
:每周执行一次(等同于?0 0 * * 0
)@daily
?或?@midnight
:每天执行一次(等同于?0 0 * * *
)@hourly
:每小时执行一次(等同于?0 * * * *
)@Scheduled
?注解的示例:在方法上使用?@Scheduled
?注解
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class MyScheduler {
@Scheduled(cron = "0 0 12 * * ?") // 每天中午 12 点执行
public void myTask() {
// 定时任务的逻辑操作
}
}
在类上使用?@Scheduled
?注解
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
@Scheduled(cron = "0 0 12 * * ?") // 每天中午 12 点执行
public class MyScheduler {
public void myTask() {
// 定时任务的逻辑操作
}
}
使用固定频率执行
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class MyScheduler {
@Scheduled(fixedRate = 5000) // 每隔 5 秒执行一次
public void myTask() {
// 定时任务的逻辑操作
}
}
使用固定延迟执行
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class MyScheduler {
@Scheduled(fixedDelay = 5000) // 上一次执行完成后,延迟 5 秒再执行
public void myTask() {
// 定时任务的逻辑操作
}
}
需要注意的是,在使用?@Scheduled
?注解之前,需要在 Spring Boot 应用程序的配置类上添加?@EnableScheduling
?注解以启用定时任务的支持。
另外,除了使用?cron
、fixedRate
?和?fixedDelay
?参数来定义时间规则外,还可以使用其他参数,如?initialDelay
、zone
?等。
在线cron表达式:http://cron.qqe2.com/
如果一些复杂的表达式不知道如何用在线表达式写,可借助于人工智能chatGPT去完成,把你的表达式描述出来。
AI人工智能网站链接如下: