开发者

定时任务@Scheduled用法及其参数使用

目录
  • 定时任务@Scheduled用法及参数
  • Spring框架中@Scheduled注解失效问题
    • 问题描述
    • 尝试的方式
    • 最终查到的解决方式
  • 总结

    定时任务@Scheduled用法及参数

    @Scheduled是Spring框架中的一个注解,用于标记一个方法为定时任务。android

    当使用@Scheduled注解时,Spring会自动编程客栈创建一个定时任务的执行器(Scheduler),并在指定的时间间隔内执行被标记的方法。

    使用@Scheduled注解时,可以通过设置不同的属性来定义定时任务的行为,例如:

    • fixedRate:固定频率执行任务,表示每隔指定的时间间隔执行一次任务。
    • fixedDelay:固定延迟执行任务,表示在上一次任务执行完成后,等待指定的时间间隔再执行下一次任务。
    • initialDelay:初始延迟时间,表示在第一次执行任务之前的等待时间。
    • cron:使用Cron表达式定义任务的执行时间,可以更灵活地控制任务的执行时间。

    具体实现:

    /**
     * 定时任务001:@Scheduled
     * springboot自带的简易定时任务实现
     *
     * @author zhupeng
     * @Date 2022/1/7 9:53 AM
     */
    @Component
    public class ScheduleTask {
        private String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
    
        // 任务间隔3s执行依次【不包括任务执行时间】,延迟1s后执行
        @Scheduled(initialDelay = 1000, fixedDelay = 3000)
        public void fixedDelay() {
            System.out.println("fixedDelay:" + this.date);
        }
    
        // 每隔间隔3s执行依次【包括任务执行时间】
        @Scheduled(fixedRate = 3000)
        public void fixedRate() {
            System.out.println("fixedRate:" + this.date);
        }
        
        // cron表达式,Quartz更详细
        @Scheduled(cron = "*/5 * * * * *")
        public void cron() {
            System.out.println("cron:" + this.date);
        }
    }
    

    Spring框架中@Scheduled注解失效问题

    问题描述

    在Spring框架的Web项目中,有一个业务功能需要每天执行一次,使用了@Scheduled注解执行定时任务,但android是出现了定时任务不执行的情况

    尝试的方式

    类上加@EnableScheduling注解、加实现SchedulingConfigurer接口的配置类、修改cron表达式

    都失败了

    最终查到的解决方式

    在Spring的配置文件中,添加配置:

    • 1.加命名空间

    XMLns添加:

    xmlns:task="http://phpwww.springframework.org/schema/task"

    xsi:schemaLocation添加 :

    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsd"
    • 2.启动注解驱动
    <task:annotation-driven scheduler="dataScheduler"/>
    • 3.开启任务调度器,并配置线程池大小
    <task:scheduler id="dataScheduler" pool-size="5"/>
    • 4.然后就可以使用@Scheduled注解了

    总结

    以上为个人经验,希望能给大家一个参考,也希望android大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜