拍照 视频 采用延时队列
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