上云api,planTimer选择Continuou的时候
已完成如题,新建航行计划planTimer选择Continuou的时候,Date日期不能选择当前日期之后的吗,如果选在之后的,在
com.dji.sample.wayline.service.impl 72行,
RedisOpsUtils.setWithExpire(RedisConst.WAYLINE_JOB_CONDITION_PREFIX + waylineJob.getJobId(), waylineJob,
(Duration.between(waylineJob.getEndTime(), LocalDateTime.now()).getSeconds()));
会报错,这里计算的结束日期和当前日期是负值,redis报错过期时间不合法
-
比如说这里计算的结束时间就是2024-05-31 19:08:38
@Override
public void setConditionalWaylineJob(WaylineJobDTO waylineJob) {
if (!StringUtils.hasText(waylineJob.getJobId())) {
throw new RuntimeException("Job id can't be null.");
}
RedisOpsUtils.setWithExpire(RedisConst.WAYLINE_JOB_CONDITION_PREFIX + waylineJob.getJobId(), waylineJob,
(Duration.between(waylineJob.getEndTime(), LocalDateTime.now()).getSeconds()));
}这里结束时间(Duration.between(waylineJob.getEndTime(), LocalDateTime.now()).getSeconds())一定是个负值,还没到下发机场那一步呢
-
您好,我可能没有描述清楚,这一步是向redis里面存值。Duration.between(waylineJob.getEndTime(), LocalDateTime.now()).getSeconds()
这里,waylineJob.getEndTime()结束时间是拿前端传递的Date加上Time最后时间段,比如Date选择了2024-05-31,Time选择了 19:08:38,这里的waylineJob.getEndTime()值就是2024-05-31 19:08:38。那么求2024-05-31 19:08:38和当前时间的差值,那么他一定是一个负值,redis过期时间为负值会抛出异常的。
请先登录再写评论。
评论
7 条评论