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

    写法一:

    import com.xxx.entity.ByteDanceDataNode;
    import com.xxx.service.ByteDanceDataService;
    import com.xxx.service.DistrictService;
    import com.xxx.service.StatusService;
    import com.xxx.util.DateUtil;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.annotation.EnableScheduling;
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.util.StringUtils;
    
    import java.io.IOException;
    import java.util.List;
    
    @Slf4j
    @Configuration
    @EnableScheduling
    public class ByteDanceFetchTask {
    
        @Autowired
        ByteDanceDataService dataService;
    
        @Autowired
        StatusService statusService;
    
        @Autowired
        DistrictService districtService;
    
    
        /**
         * 10分钟跑一次
         * @throws IOException
         */
        @Scheduled(fixedDelayString = "${task.initialDelay}", initialDelayString = "${task.fixedDelay}")
        public void doWork() throws IOException {
    
            log.info("正在执行定时任务");
            String json = dataService.getAllJsonData();
            if (StringUtils.isEmpty(json)) {
                log.error("json下载出错");
                return ;
            }
            ByteDanceDataNode node = dataService.getByteDanceDataNode(json);
    
            if (node == null) {
                log.error("json格式升级,解析根节点json出错");
                return ;
            }
    
            List<ByteDanceDataNode.ProvincesBean> provinces = node.getProvinces();
    
            if (provinces == null)
            {
                log.error("json格式升级,解析城市出错");
                return ;
            }
    
    
            String updateTime = DateUtil.epochSecondToFormattedDateTime(node.getUpdateTime());
    
            dataService.saveData(updateTime,provinces);
    
            statusService.saveStatus("lastUpdateTime",updateTime);
    
            dataService.computeWeight();
    
            log.info("定时任务执行完成");
        }
    
    }

    对应的配置文件

    application.properties

    #1*60*1000
    task.initialDelay=60000
    #10*60*1000
    task.fixedDelay=600000

    写法二:

    import com.xxx.entity.ByteDanceDataNode;
    import com.xxx.service.ByteDanceDataService;
    import com.xxx.service.DistrictService;
    import com.xxx.service.StatusService;
    import com.xxx.util.DateUtil;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.annotation.EnableScheduling;
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.util.StringUtils;
    
    import java.io.IOException;
    import java.util.List;
    
    @Slf4j
    @Configuration
    @EnableScheduling
    public class ByteDanceFetchTask {
    
        @Autowired
        ByteDanceDataService dataService;
    
        @Autowired
        StatusService statusService;
    
        @Autowired
        DistrictService districtService;
    
    
        /**
         * 5分钟跑一次
         * @throws IOException
         */
        @Scheduled(fixedDelay = 1 * 60 * 1000, initialDelay = 10 * 60 * 1000)
        public void doWork() throws IOException {
    
            log.info("正在执行定时任务");
            String json = dataService.getAllJsonData();
            if (StringUtils.isEmpty(json)) {
                log.error("json下载出错");
                return ;
            }
            ByteDanceDataNode node = dataService.getByteDanceDataNode(json);
    
            if (node == null) {
                log.error("json格式升级,解析根节点json出错");
                return ;
            }
    
            List<ByteDanceDataNode.ProvincesBean> provinces = node.getProvinces();
    
            if (provinces == null)
            {
                log.error("json格式升级,解析城市出错");
                return ;
            }
    
    
            String updateTime = DateUtil.epochSecondToFormattedDateTime(node.getUpdateTime());
    
            dataService.saveData(updateTime,provinces);
    
            statusService.saveStatus("lastUpdateTime",updateTime);
    
            dataService.computeWeight();
    
            log.info("定时任务执行完成");
        }
    
    }
  • 相关阅读:
    160. Intersection of Two Linked Lists
    155. Min Stack
    TensorRT caffemodel serialize序列化
    141. Linked List Cycle
    异或运算的性质及应用
    136. Single Number
    【leeetcode】125-Valid Palindrome
    c++函数参数类型-引用、指针、值
    【linux基础】linux远程登录SSH
    【leetcode】122-Best Time to Buy and Sell Stock II
  • 原文地址:https://www.cnblogs.com/passedbylove/p/12401476.html
Copyright © 2011-2022 走看看