⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createconverterthread.java

📁 简单的视频上传系统
💻 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 + -