📄 createconverterthread.java
字号:
package cn.com.csuinfosoft.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.concurrent.ExecutorService;
import org.apache.log4j.Logger;
import cn.com.csuinfosoft.dao.DAO;
/**
* 一个文件 仍然存在被多次处理的可能性!!
* @author ShuShine
*
*/
public class CreateConverterThread extends Thread {
private ExecutorService executorService = null;
private File videoFolder = null;
private int waitTime = 0;
private LinkedList<File> convertFile = null;
private Logger logger = null;
private DAO flvInfoDAO = null;
public CreateConverterThread(ExecutorService executorService, DAO dao , String argVideoDir, int waitTime) throws Exception {
this.executorService = executorService;
videoFolder = new File(argVideoDir);
//判断路径是否正确
if(!videoFolder.isDirectory()) throw new FileNotFoundException(argVideoDir + "is not Folder!!");
this.waitTime = waitTime;
flvInfoDAO = dao;
logger = Logger.getLogger(this.getClass());
}
@Override
public void run() {
File[] videoFiles = null;
ConvertRunnable cr = null;
File tmp = null;
while(true) {
//扫描制定目录,是否有需要代转的文件
logger.debug("run.start ----- convertFile === " + convertFile);
if(convertFile != null && convertFile.size() != 0) {
for(int i = 0; i < convertFile.size(); i++) {
tmp = (File)convertFile.get(i);
if(!tmp.exists()) {
logger.debug("tmp === " + tmp);
convertFile.remove(i);
}
}
try {
Thread.sleep(waitTime);
logger.debug("convertFile === is not null!!! Thread.sleep");
} catch (InterruptedException e) {
logger.error("CreateConverter类错误---",e);
}//进入休眠 ,过一段时间再进行扫描
logger.debug("convertFile ==== " + convertFile.size());
if(convertFile.size() == 1 && ((File)convertFile.get(0)).getName().indexOf("Thumbs") > -1) {
convertFile.remove(0);
} else {
continue;
}
}
videoFiles = videoFolder.listFiles();
//将文件数组转换为集合类
convertFile = new LinkedList<File>(Arrays.asList(videoFiles));
if(convertFile == null || convertFile.size() == 0) {
logger.debug("convertFile...null...");
try {
Thread.sleep(waitTime);//进入休眠 ,过一段时间再进行扫描
continue;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for(int i = 0, n = convertFile.size(); i < n; i++) {
//for(int i = 0, n = runnableCache.size(); i < n; i++) {
cr = new ConvertRunnable(flvInfoDAO);
//logger.debug("cr.isInUse() = " + !cr.isInUse());
cr.setVideoFile(convertFile.get(i));
cr.setInUse(true);
logger.debug("executorService......");
executorService.execute(cr);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -