SpringBoot设置定时任务

1,SpringBoot设置定时任务,如每隔5秒输出一段内容。(这是springboot自带的定时任务,不需要依赖,相比quartz简单易用)

编程式写法:

首先实现SchedulingConfigurer,然后重写configureTasks方法,

再设置:1,需要执行任务,2,设置时间(参考QuartZ cron表达式)。

还不明白?新建一个springboot项目,把这段代码复制执行一遍,就懂了。

@Configuration
@EnableScheduling
public class TestSchedule implements SchedulingConfigurer {
    @Override
    public void configureTasks(ScheduledTaskRegistrar task) {
    task.addTriggerTask(
            () -> {sendMail();},//需要执行的任务
            triggerContext -> {return setSendMailTime(triggerContext);});// 设置时间
    }
   public void sendMail(){
       System.out.println("执行发送邮件任务");
   }
    public Date setSendMailTime(TriggerContext triggerContext){
        String cron ="*/5 * * * * ?";// 每隔5秒发送
       return new CronTrigger(cron).nextExecutionTime(triggerContext);
    }
}

声明式写法:

/**springboot自带定时任务,第二种方式,声明式
 * Spring Schedule 提供三种形式的定时任务:
 */
@Component
@Configurable
@EnableScheduling
public class TestScheduled_2 {
    
    // 1,固定间隔时间 @Scheduled(fixedRate = 时间间隔 )
    @Scheduled(fixedRate = 1000 * 10)// 10s执行一次
    public void reportCurrentTime(){
        System.out.println ("方法一" + dateFormat ().format (new Date()));
    }

    // 2,固定等待时间 @Scheduled(fixedDelay = 时间间隔 )
    @Scheduled(fixedDelay = 1000 * 2) // 2s执行一次
    public void fixedDelayJob() throws InterruptedException {
        System.out.println("方法二"+dateFormat ().format (new Date ()));
    }

    // 3,Corn表达式 @Scheduled(cron = Corn表达式)
    //每秒执行一次
    @Scheduled(cron = "*/1 * *  * * * ")
    public void reportCurrentByCron(){
   System.out.println ("方法3" + dateFormat ().format (new Date ()));
    }

    private SimpleDateFormat dateFormat(){
        return new SimpleDateFormat ("HH:mm:ss");
    }
}

2,通过JavaMail发送邮件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值