0 */10 * * * ?
0 0/10 * * * ?
区别:第一个表示服务启动后每10分钟执行一次;第二个表示服务启动后也是每隔10分钟执行一次,但是是整点,比如10分、20分等。
比如服务是10:07分启动的,第一个配置的话,是10:17分执行;第二个执行是10:10分。
补充下,定时任务时间符号顺序:秒、分、时、天、月、周、年。如下:
Seconds (秒):可出现", - * /"四个字符,有效范围为(0-59)的整数
Minutes (分):可出现", - * /"四个字符,有效范围为(0-59)的整数
Hours (时):可出现", - * /"四个字符,有效范围为(0-23)的整数
DayofMonth(天):可出现", - * / ? L W C"八个字符,有效范围为(0-31)的整数,但要注意一些特别的月份,例如2月份只有28
Month (月):可出现", - * /"四个字符,有效范围为(0-11)的整数或用字符串 “JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC” 表示
DayofWeek(周):可出现", - * / ? L C #"四个字符,有效范围为(1-7)的整数或用字符串“SUN, MON, TUE, WED, THU, FRI and SAT”两个范围表示。1表示星期天,2表示星期一, 依次类推
Year (年 可选字段) :可出现", - * /"四个字符,有效范围为(1970-2099)年
在上例cron 0 0/10 * * *中:0代表从0时0分开始,*代表任意字符,/代表域内递增
也就是说0 0/10 * * *代表从0时0分
钟
开始,每
10分
钟
执行任务
一次
。
?:只能用在DayofMonth和DayofWeek两个域,一般用在末尾,例如想在每月的20...
我们在开发时经常会遇到一些需要定时执行的小任务,使用了 springboot 的
定时任务
后变得更加简单快捷,下面举个例子:
Java配置中开户对Scheduled的支持:
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
@Configuration
@EnableScheduling
public c
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new MyTask(), 0, 5*60*1000); //
每隔
5 分
钟
执行
一次
在上面的代码中,我们创建了一个名为 `MyTask` 的 `TimerTask` 子类,并实现了 `run` 方法来定义
定时任务
要执行的操作。在 `main` 方法中,我们创建了一个 `Timer` 对象,并调用其 `schedule` 方法来安排
定时任务
。第一个参数是要执行的任务对象,第二个参数是首次执行任务的延迟时间(这里设为 0),第三个参数是每次执行任务的时间间隔(单位为毫秒,这里设为 5 分
钟
)。
你可以根据实际需求修改上面的代码,例如将输出语句改为执行其他操作。