package com.yingji.quartz; import cn.hutool.core.util.StrUtil; import com.yingji.entity.Alarm; import com.yingji.entity.dto.request.AlarmRequest; import com.yingji.service.AlarmService; import com.yingji.service.SourceService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** * 110数据保存定时任务 * * @author wu * @since 2024/05/06 10:18 */ @Configuration @EnableScheduling @Transactional(rollbackFor = Exception.class) public class SaveAlarmQuartz { public static final Logger log = LoggerFactory.getLogger(SaveAlarmQuartz.class); @Resource private AlarmService alarmService; @Resource private SourceService sourceService; @Scheduled(cron = "0 */1 * * * ? ") private void savaData() { // 查询所有id List data = sourceService.findSourceAll(); // 查询数据条件 AlarmRequest alarmRequest = new AlarmRequest(); alarmRequest.setType("getValue"); alarmRequest.setPageIndex(1); alarmRequest.setPageSize(10); // 定义成功条数 int successNum = 0; // 定义失败条数 int failuresNum = 0; List list = new ArrayList<>(); if (data == null) { return; } // 获取token String token = alarmService.getToken(); if (StrUtil.isEmpty(token)) { return; } for (String x : data) { try { alarmRequest.setValue(x); Alarm alarm = alarmService.findDataList(alarmRequest, token); if (alarm != null) { alarm.setSourceId(x); list.add(alarm); sourceService.delBySourceId(x); successNum++; Thread.sleep(2000); } } catch (Exception e) { failuresNum++; log.info("==========================" + "id:" + x, "更新数据失败"); log.info("失败更新=========================" + failuresNum + "条数据"); } } alarmService.saveBatch(list); log.info("成功更新=========================" + successNum + "条数据"); } }