Skip to content

定时任务设定

分情况使用

1.后端使用

springboot自带@Scheduled注解,就是用来执行定时任务的,根据传入的cron表达式定时执行添加注解的函数。

2.Linux服务器使用

在linux上使用crontab来执行定时任务。

查看当前Linux系统中的定时任务

shell
crontab -l

编辑当前Linux系统中的定时任务

shell
crontab -e

一般定时任务设定格式:

[cron表达式] + [用户身份] + [执行命令]

示例:0 0,12 * * * sudo -u root /sbin/hwclock --hctosys(每天0点与12点使用root用户执行系统时间与硬件时间同步任务)

Cron表达式

cron 表达式是一个字符串,该字符串由 6 个空格分为 7 个域,每一个域代表一个时间含义。 格式如下:

[秒] [分] [时] [日] [月] [周] [年]

通常定义 “年” 的部分可以省略,实际常用的由 前六部分组成

Cron 的各个域的定义

是否必填值以及范围通配符
0-59, - * /
0-59, - * /
0-23, - * /
1-31, - * ? / L W
1-12 或 JAN-DEC, - * /
1-7 或 SUN-SAT, - * ? / L #
1970-2099, - * /

数字:表示对应的时间点值(如1表示1点)

星号(*):表示该字段的所有可能值,如分钟字段中的星号表示每分钟的任何时间点

逗号(,):用于分割字段中的多个取值,如“2,5,10”表示取值为2、5、10的时间点

连接符(-):用于指定时间段,如“1-5”表示取值范围为1到5的所有时间点

斜杠(/):用于指定时间步长,如“*/10”表示每隔10个时间点执行一次任务

示例

每隔1分钟执行一次:0 */1 * * * ?

每天22点执行一次:0 0 22 * * ?

每月1号凌晨1点执行一次:0 0 1 1 * ?

每月最后一天23点执行一次:0 0 23 L * ?

每周周六凌晨3点实行一次:0 0 3 ? * L

在24分、30分执行一次:0 24,30 * * * ?