| | |
| | | import com.dji.sample.component.mqtt.model.EventsReceiver; |
| | | import com.dji.sample.component.redis.RedisConst; |
| | | import com.dji.sample.component.redis.RedisOpsUtils; |
| | | import com.dji.sample.wayline.model.dto.ConditionalWaylineJobKey; |
| | | import com.dji.sample.wayline.model.dto.WaylineJobDTO; |
| | | import com.dji.sample.wayline.model.dto.WaylineJobKey; |
| | | import com.dji.sample.wayline.model.dto.WaylineTaskProgressReceiver; |
| | | import com.dji.sample.wayline.service.IWaylineRedisService; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Boolean delBlockedWaylineJobId(String dockSn) { |
| | | return RedisOpsUtils.del(RedisConst.WAYLINE_JOB_BLOCK_PREFIX + dockSn); |
| | | } |
| | | |
| | | @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())); |
| | | Math.abs(Duration.between(waylineJob.getEndTime(), LocalDateTime.now()).getSeconds())); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Boolean addPrepareConditionalWaylineJob(WaylineJobDTO waylineJob) { |
| | | public Boolean addPreparedWaylineJob(WaylineJobDTO waylineJob) { |
| | | if (Objects.isNull(waylineJob.getBeginTime())) { |
| | | return false; |
| | | } |
| | | // value: {workspace_id}:{dock_sn}:{job_id} |
| | | return RedisOpsUtils.zAdd(RedisConst.WAYLINE_JOB_CONDITION_PREPARE, |
| | | return RedisOpsUtils.zAdd(RedisConst.WAYLINE_JOB_PREPARED, |
| | | waylineJob.getWorkspaceId() + RedisConst.DELIMITER + waylineJob.getDockSn() + RedisConst.DELIMITER + waylineJob.getJobId(), |
| | | waylineJob.getBeginTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); |
| | | } |
| | | |
| | | @Override |
| | | public Optional<ConditionalWaylineJobKey> getNearestConditionalWaylineJob() { |
| | | return Optional.ofNullable(RedisOpsUtils.zGetMin(RedisConst.WAYLINE_JOB_CONDITION_PREPARE)) |
| | | .map(Object::toString).map(ConditionalWaylineJobKey::new); |
| | | public Optional<WaylineJobKey> getNearestPreparedWaylineJob() { |
| | | return Optional.ofNullable(RedisOpsUtils.zGetMin(RedisConst.WAYLINE_JOB_PREPARED)) |
| | | .map(Object::toString).map(WaylineJobKey::new); |
| | | } |
| | | |
| | | @Override |
| | | public Double getConditionalWaylineJobTime(ConditionalWaylineJobKey jobKey) { |
| | | return RedisOpsUtils.zScore(RedisConst.WAYLINE_JOB_CONDITION_PREPARE, jobKey.getKey()); |
| | | public Double getPreparedWaylineJobTime(WaylineJobKey jobKey) { |
| | | return RedisOpsUtils.zScore(RedisConst.WAYLINE_JOB_PREPARED, jobKey.getKey()); |
| | | } |
| | | |
| | | @Override |
| | | public Boolean removePrepareConditionalWaylineJob(ConditionalWaylineJobKey jobKey) { |
| | | return RedisOpsUtils.zRemove(RedisConst.WAYLINE_JOB_CONDITION_PREPARE, jobKey.getKey()); |
| | | public Boolean removePreparedWaylineJob(WaylineJobKey jobKey) { |
| | | return RedisOpsUtils.zRemove(RedisConst.WAYLINE_JOB_PREPARED, jobKey.getKey()); |
| | | } |
| | | } |