zoukankan      html  css  js  c++  java
  • springcloud-定时任务

    1.定时时间固定,只能在后台代码更改

    @Configuration
    @EnableScheduling
    public class ScheduleTask {
        @Autowired     private UploadServiceImpl uploadServiceImpl;
    
        //添加定时任务,写死时间
        @Scheduled(cron = "0 */1 * * * ?")
        private void configureTasks() {
            uploadServiceImpl.putLocalFile(); //任务内容
        }
    }

    2.在数据库获取定时时间

      2.1 建表

    DROP TABLE IF EXISTS `cron`;
    CREATE TABLE `cron`  (
      `cron_id` varchar(30) NOT NULL PRIMARY KEY,
      `cron` varchar(30) NOT NULL  
    );
    INSERT INTO `cron` VALUES ('1', '0/5 * * * * ?');
    
           select cron from cron limit 1;

      2.2  后台代码

    @Configuration
    @EnableScheduling
    public class ScheduleTask implements SchedulingConfigurer {
        //获取数据库定时时间
        @Autowired     private UploadServiceImpl uploadServiceImpl; 
    
        //添加定时任务,写死时间
        @Scheduled(cron = "0 */1 * * * ?")
        private void configureTasks() {
            uploadServiceImpl.putLocalFile(); //任务内容
        }
    
    //添加定时任务,数据库可修改时间格式
        @Override
        public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
    
            scheduledTaskRegistrar.addTriggerTask(
                    //1.添加任务内容(Runnable)
                    () -> uploadServiceImpl.putLocalFile(),
                    //2.设置执行周期(Trigger)
                    triggerContext -> {
                        //2.1 从数据库获取执行周期
                        String cron = uploadServiceImpl.getCron();
                        //2.2 合法性校验.
                        if (StringUtils.isEmpty(cron)) {
                           throw new RuntimeException("定时格式错误");
                        }
                        //2.3 返回执行周期(Date)
                        return new CronTrigger(cron).nextExecutionTime(triggerContext);
                    }
            );
        }
    
    
        }
  • 相关阅读:
    js去除空格
    Quartz定时任务学习(九)Quartz监听器
    Quartz定时任务学习(七)Cron 触发器
    数据挖掘之聚类算法K-Means总结
    SQL SERVER分区具体例子详解
    基于basys2驱动LCDQC12864B的verilog设计图片显示
    图像处理的多线程计算
    三维空间中的几种坐标系
    2017年要学习的三个CSS新特性
    Mesos 资源分配
  • 原文地址:https://www.cnblogs.com/hyy9527/p/14931993.html
Copyright © 2011-2022 走看看