You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.5 KiB

package com.yingji.quartz;
import cn.hutool.core.util.StrUtil;
import com.utils.SmsUtil;
import com.yingji.entity.QuartzLog;
import com.yingji.service.AccidentService;
import com.yingji.service.QuartzLogService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.Resource;
import java.time.Duration;
import java.time.LocalDateTime;
/**
* 120定时任务保存数据
*
* @author wu
* @since 2024/5/10 上午10:05
*/
@Configuration
public class AccidentQuartz {
public static final Logger log = LoggerFactory.getLogger(AccidentQuartz.class);
@Resource
private AccidentService accidentService;
@Resource
private QuartzLogService quartzLogService;
@Async
@Scheduled(cron = "0 */1 * * * ? ")
public void savaData() {
// 获取数据库中最新的创建时间
LocalDateTime newTime = accidentService.findNewTime();
// 获取当前时间
LocalDateTime currentTime = LocalDateTime.now();
// 计算两者之间的持续时间
Duration duration = Duration.between(newTime, currentTime);
// 判断时间差是否大于24小时
if (duration.toHours() > 24) {
// 调用短信接口
SmsUtil.sendSms("120原始接口超过24小时无数据", null);
}
QuartzLog quartzLog = new QuartzLog();
quartzLog.setInterfaceName(3);
quartzLog.setCreateTime(LocalDateTime.now());
try {
String accessToken = accidentService.getAuthorizeToken();
if (StrUtil.isNotEmpty(accessToken)) {
accidentService.getAccidentUrl(accessToken);
quartzLog.setStatus(1);
log.info("=================120定时任务结束===============");
} else {
quartzLog.setStatus(2);
// 调用短信接口
SmsUtil.sendSms("120原始接口获取token失败", null);
log.info("=================120定时任务获取token失败===============");
}
} catch (Exception e) {
// 调用短信接口
SmsUtil.sendSms("120原始接口调用失败", null);
e.printStackTrace();
quartzLog.setStatus(2);
} finally {
quartzLogService.save(quartzLog);
}
}
}