拍照 视频 采用延时队列

merge-requests/3/head
qiushui 4 years ago
parent fbf22449e5
commit 753aa17502

@ -26,13 +26,25 @@ public class CameraDelayTask implements Delayed {
private long executeTime; private long executeTime;
private long delayTime;
public CameraDelayTask(Integer cameraId, LocalDateTime startTime, LocalDateTime endTime, String path, Integer type, long delayTime) {
this.cameraId = cameraId;
this.startTime = startTime;
this.endTime = endTime;
this.path = path;
this.type = type;
this.executeTime = System.currentTimeMillis()+delayTime;
this.delayTime = delayTime;
}
@Override @Override
public long getDelay(TimeUnit unit) { public long getDelay(TimeUnit unit) {
return unit.convert(this.executeTime - System.nanoTime(), TimeUnit.NANOSECONDS); return unit.convert(this.executeTime - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
} }
@Override @Override
public int compareTo(Delayed o) { public int compareTo(Delayed o) {
return 0; return (int) (this.getDelay(TimeUnit.MILLISECONDS) -o.getDelay(TimeUnit.MILLISECONDS));
} }
} }

@ -36,6 +36,7 @@ public class TaskDelayExecutor {
CameraControlModule cameraControlModule = SpringContextUtil.getBean(CameraControlModule.class); CameraControlModule cameraControlModule = SpringContextUtil.getBean(CameraControlModule.class);
CameraDelayTask cameraDelayTask = queue.take(); CameraDelayTask cameraDelayTask = queue.take();
if(cameraDelayTask != null){ if(cameraDelayTask != null){
System.out.println(LocalDateTime.now());
if(cameraDelayTask.getType() == 0){ if(cameraDelayTask.getType() == 0){
cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime()); cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime());
}else if(cameraDelayTask.getType() == 1){ }else if(cameraDelayTask.getType() == 1){

@ -441,13 +441,13 @@ public class PlcService {
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
Integer cameraId = getCameraByPlcCmd(plcCmdInfo,1); Integer cameraId = getCameraByPlcCmd(plcCmdInfo,1);
gyrateCameraByCode(cameraId, cmdCode); gyrateCameraByCode(cameraId, cmdCode);
String path = cameraCapture(cameraId,true,2500L); String path = cameraCapture(cameraId,true,3000L);
OrderInfo orderInfo = new OrderInfo(street,plcCmdInfo,1,cmdCode); OrderInfo orderInfo = new OrderInfo(street,plcCmdInfo,1,cmdCode);
Stock stock = stockMapper.getByShelveIdAndRowColumn(orderInfo.getShelveId(),orderInfo.getRow(),orderInfo.getColumn()); Stock stock = stockMapper.getByShelveIdAndRowColumn(orderInfo.getShelveId(),orderInfo.getRow(),orderInfo.getColumn());
System.out.println(configProperties.getSavePath().getMediaPath()+path); System.out.println(configProperties.getSavePath().getMediaPath()+path);
try { try {
Thread.sleep(800); Thread.sleep(3500L);
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -484,5 +484,9 @@ public class PlcService {
} }
} }
public void checkPicDelay(){
}
} }

Loading…
Cancel
Save