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);
                    }
            );
        }
    
    
        }
  • 相关阅读:
    注意技巧小结
    小数点转百分比
    Mysql 性能监控及调优
    Linux下快速安装Mysql及使用
    如何建立压力计算模型
    Redis 2种持久化模式的缺陷
    Redis性能调优建议
    Node.js学习入门手册
    手机APP脚本录制(LoadRunner 12)
    Linux系统内核性能调优
  • 原文地址:https://www.cnblogs.com/hyy9527/p/14931993.html
Copyright © 2011-2022 走看看