package com.ruoyi.energymeter.job;
|
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
import com.ruoyi.energymeter.service.EnergyMeterSyncService;
|
import org.quartz.DisallowConcurrentExecution;
|
import org.quartz.Job;
|
import org.quartz.JobExecutionContext;
|
import org.quartz.JobExecutionException;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
/**
|
* 每 10 分钟执行一次:处理到期重试任务与超时 RUNNING 任务。
|
*/
|
@DisallowConcurrentExecution
|
public class EnergyMeterRecoveryJob implements Job {
|
|
private static final Logger log = LoggerFactory.getLogger(EnergyMeterRecoveryJob.class);
|
|
@Override
|
public void execute(JobExecutionContext context) throws JobExecutionException {
|
try {
|
EnergyMeterSyncService syncService = SpringUtils.getBean(EnergyMeterSyncService.class);
|
int handled = syncService.recoverDueTasks();
|
if (handled > 0) {
|
log.info("水电表同步恢复作业完成,处理任务数={}", handled);
|
}
|
} catch (Exception e) {
|
log.error("水电表同步恢复作业失败", e);
|
throw new JobExecutionException(e, false);
|
}
|
}
|
}
|