写法一:
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("定时任务执行完成"); } }
本博客文章绝大多数为原创,少量为转载,代码经过测试验证,如果有疑问直接留言或者私信我。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。