拍照 视频 采用延时队列
parent
4259649407
commit
fbf22449e5
@ -1,9 +0,0 @@
|
|||||||
package com.zhehekeji.web.lib;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class DownloadConsumer {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,42 +0,0 @@
|
|||||||
package com.zhehekeji.web.lib;
|
|
||||||
|
|
||||||
import com.zhehekeji.common.util.SpringContextUtil;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.concurrent.DelayQueue;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
|
|
||||||
public class DownloadMp4Executor {
|
|
||||||
|
|
||||||
private static ExecutorService exec = Executors.newFixedThreadPool(1);
|
|
||||||
|
|
||||||
private static DelayQueue<DownloadMp4Delayed> queue = new DelayQueue<>();
|
|
||||||
|
|
||||||
public static void addDelayTask(Integer cameraId, String path,LocalDateTime startTime, LocalDateTime endTime, Long delayTime) {
|
|
||||||
DownloadMp4Delayed downloadMp4Delayed = new DownloadMp4Delayed(cameraId, startTime, endTime,path, delayTime);
|
|
||||||
queue.add(downloadMp4Delayed);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void runMp4DownloadExecutor(){
|
|
||||||
exec.execute(new Consumer());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class Consumer implements Runnable {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
while (true) {
|
|
||||||
try {
|
|
||||||
DownloadMp4Delayed downloadMp4Delayed = queue.take();
|
|
||||||
CameraControlModule cameraControlModule = SpringContextUtil.getBean(CameraControlModule.class);
|
|
||||||
cameraControlModule.downloadMp4(downloadMp4Delayed.getCameraId(), downloadMp4Delayed.getPath(),downloadMp4Delayed.getStartTime(),downloadMp4Delayed.getEndTime());
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
package com.zhehekeji.web.lib;
|
||||||
|
|
||||||
|
import com.zhehekeji.common.util.SpringContextUtil;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.concurrent.DelayQueue;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
|
public class TaskDelayExecutor {
|
||||||
|
|
||||||
|
private static ExecutorService exec = Executors.newFixedThreadPool(1);
|
||||||
|
|
||||||
|
private static DelayQueue<CameraDelayTask> queue = new DelayQueue<>();
|
||||||
|
|
||||||
|
public static void addMp4DelayTask(Integer cameraId, String path, LocalDateTime startTime, LocalDateTime endTime, Long delayTime) {
|
||||||
|
CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, startTime, endTime,path, 0,delayTime);
|
||||||
|
queue.add(cameraDelayTask);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void addPicDelayTask(Integer cameraId, String path, Long delayTime) {
|
||||||
|
CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, null, null,path, 1,delayTime);
|
||||||
|
queue.add(cameraDelayTask);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void runMp4DownloadExecutor(){
|
||||||
|
exec.execute(new Consumer());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class Consumer implements Runnable {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
CameraControlModule cameraControlModule = SpringContextUtil.getBean(CameraControlModule.class);
|
||||||
|
CameraDelayTask cameraDelayTask = queue.take();
|
||||||
|
if(cameraDelayTask != null){
|
||||||
|
if(cameraDelayTask.getType() == 0){
|
||||||
|
cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime());
|
||||||
|
}else if(cameraDelayTask.getType() == 1){
|
||||||
|
cameraControlModule.pic(cameraDelayTask.getCameraId(),0, cameraDelayTask.getPath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue