spring 定时任务标注

本文介绍了如何使用Spring框架实现定时任务,包括使用@Component注解的方法、固定延迟和初始延迟的设置,以及更复杂的Cron表达式的应用示例。

使用spring框架,需要定时任务只需要在方法上加@Component 就可以了

package hello;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class ScheduledTasks {

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(fixedRate = 5000)
    public void reportCurrentTime() {
        System.out.println("The time is now " + dateFormat.format(new Date()));
    }
}

@Component 如果规则比较使用fixedDelay和initialDelay就行了

fixedDelay是每隔多少执行一次。initialDelay是启动后多久第一次执行。单位都是毫秒。前面的例子是5秒钟一次

如果需要的规则比较复杂,就需要用cron表达式了。

 

@Scheduled(cron="*/5 * * * * MON-FRI")
public void doSomething() {
    // something that should execute on weekdays only
}

这个表达式包含6个顺序独立的字段: 分别表示 秒, 分钟, 小时, 日(几号), 月, 星期几. 月和星期几可以用英文名的前三个字母表示。

上面的例子是工作日每5秒执行一次

再给几个例子

"0 0 * * * *" = 每天每个小时开始.
"*/10 * * * * *" = 每隔10分钟.
"0 0 8-10 * * *" = 每天的8, 9和10点.
"0 0/30 8-10 * * *" = 每天8:00, 8:30, 9:00, 9:30 和 10:00
"0 0 9-17 * * MON-FRI" = 工作日的朝九晚五
"0 0 0 25 12 ?" = 每年圣诞节晚上

 

转载于:https://www.cnblogs.com/easyroom/p/5783512.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值