代码编织梦想

创建SpringBoot工程

自行创建

添加注解

在这里插入图片描述

创建定时任务

@Scheduled(cron = "0 0 1 * * ? ") 里面的参数为七域表达式

日期操作工具类:

/**
 * 日期操作工具类
 *
 * @author qy
 * @since 1.0
 */
@Component
public class DateUtil {

    private static final String dateFormat = "yyyy-MM-dd";

    /**
     * 格式化日期
     *
     * @param date
     * @return
     */
    public static String formatDate(Date date) {
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
        return sdf.format(date);

    }

    /**
     * 在日期date上增加amount天 。
     *
     * @param date   处理的日期,非null
     * @param amount 要加的天数,可能为负数
     */
    public static Date addDays(Date date, int amount) {
        Calendar now =Calendar.getInstance();
        now.setTime(date);
        now.set(Calendar.DATE,now.get(Calendar.DATE)+amount);
        return now.getTime();
    }

    public static void main(String[] args) {
        System.out.println(DateUtil.formatDate(new Date()));
        System.out.println(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }
}

代码案例:

@Component
public class ScheduledTask {

    @Autowired
    private StatisticsDailyService dailyService;
    //每隔5秒执行一次
    @Scheduled(cron = "0/5 * * * * ?")
    public void task1(){
        System.out.println("task1-----------------------------");
    }

    //每天凌晨1点跑前一天数据
    @Scheduled(cron = "0 0 1 * * ? ")
    public void task2(){
        String day = DateUtil.formatDate(DateUtil.addDays(new Date(),-1));
        dailyService.createStaDaily(day);
        System.out.println("生成数据成功"+day);
    }

}

结果:
在这里插入图片描述

七域表达式

网址:https://cron.qqe2.com/
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/daai5201314/article/details/126416720

springboot定时任务重复执行-爱代码爱编程

问题描述:程序中有一个定时任务,每半个小时执行一次,按照规则生成假数据插入到数据库中,突然有一天查看数据库,每次都会有两条数据,数据还不一样,意识到是不是定时任务重复执行了,就去看了log日志,发现定时任务确实执行了两次。 定时任务代码如下: /** * 每30分钟执行一次 */ @Scheduled(cron = "0 0/

springboot定时任务注解的使用-爱代码爱编程

1.首先启动类要加@EnableScheduling注解 @SpringBootApplication @EnableScheduling public class ManagerApplication { public static void main(String[] args) { SpringApplication.run(PwManag

springboot 定时任务动态启动和停止-爱代码爱编程

这个在网上都要解决方案了,我来梳理下我这边理解的, ,我简单的就实现了,当然可以动态加更多的内容; 定时任务对于大多数需求来说,@注解级别就可以了,,,但是有些需要提前用数据库配置的,,也可以通过实现 SchedulingConfigurer 这个也是可以的,配置好后重启即可;还有一些情况是需要根据业务增删改查来动态生成的,这块就是今天来分享;首先如果你