javaJobDataMap jobDataMap = JobExecutionContext.getTrigger().getJobDataMap();
long value = Long.parseLong((String) jobDataMap.get("value"));
java/**
* 查询5分钟内产生的流水,统计成交的金额总和
*/
public class JobDeviceRechargeStat implements Job {
private static final Logger logger = LoggerFactory.getLogger(JobDeviceRechargeStat.class);
@Override
public void execute(JobExecutionContext context) {
logger.info("开始执行 DeviceRechargeStatJob ...");
// 获取JobDataMap中的数据
long endTime = DateUtil.getCurrentTimeSecond().longValue() * 1000; //确保是整秒
// 五分钟前的时间戳, 必须与定时任务执行的频率一致否则会到导致数据重复计算或数据遗漏
long startTime = endTime - 1000*60*5;
// 查询一段时间内的校验流水,然后再保存到统计的表中,这里不详细写了...
// payRecordRepo.getDevicePayRecordBoByTime(startTime, endTime);
logger.info("执行结束 DeviceRechargeStatJob ...");
}
}
1000*60*5并不能直接写死在这里。于是我们可以通过把该值通过JobDataMap在定时任务启动时中传递过来。javapublic class JobDeviceRechargeStat implements Job {
private static final Logger logger = LoggerFactory.getLogger(JobDeviceRechargeStat.class);
@Override
public void execute(JobExecutionContext context) {
logger.info("开始执行 DeviceRechargeStatJob ...");
// 获取JobDataMap中的数据
long endTime = DateUtil.getCurrentTimeSecond().longValue() * 1000; //确保是整秒
JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
long timeInterval = Long.parseLong((String) jobDataMap.get("timeInterval"));
long startTime = endTime - timeInterval; // timeInterval必须与定时任务执行的频率一致否则会到导致数据重复计算或数据遗漏
// 查询一段时间内的校验流水,然后再保存到统计的表中,这里不详细写了...
// payRecordRepo.getDevicePayRecordBoByTime(startTime, endTime);
logger.info("执行结束 DeviceRechargeStatJob ...");
}
}
本文作者:jiangshaoneng
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!