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

📄 videothreandlistener.java

📁 简单的视频上传系统
💻 JAVA
字号:
package cn.com.csuinfosoft.listener;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.springframework.web.context.WebApplicationContext;

import cn.com.csuinfosoft.dao.DAO;
import cn.com.csuinfosoft.util.CreateConverterThread;

public class VideoThreandListener implements ServletContextListener {

	private ExecutorService executorService = null;
	
	public void contextDestroyed(ServletContextEvent event) {
		executorService.shutdown();
		
		//如果等待时间后,线程还为结束就 自动终止当前线程
		while(!executorService.isTerminated())
        {
         try
         {
               executorService.awaitTermination(30, TimeUnit.SECONDS);
         }
         catch(InterruptedException e)
         {
          e.printStackTrace();
         }
        }

	}

	public void contextInitialized(ServletContextEvent event) {
		//加载配置中关于线程池的多大线程数
		String max = event.getServletContext().getInitParameter("maxThreas");
		int maxThreads = 10;	//某人为10个线程
		if(max != null || !max.equals("")) {
			maxThreads = Integer.parseInt(max);
		}
		//加载配置中关于视频文件的存放位置数
		
		String videoDir = event.getServletContext().getInitParameter("videoDir");
		if(videoDir == null || videoDir.equals("")) {
			videoDir = "/videoDir";
		}
		videoDir = event.getServletContext().getRealPath(videoDir);
		//加载配置中关于扫描间隔时间
		String waitT = event.getServletContext().getInitParameter("waitTime");
		int waitTime = 54000;	//某人为10个线程
		if(waitT != null || !waitT.equals("")) {
			waitTime = Integer.parseInt(waitT);
		}		
		
		//创建线程池对象
		executorService = Executors.newFixedThreadPool(maxThreads);
		
		WebApplicationContext applicationContext = (WebApplicationContext)event.getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
		String bean = event.getServletContext().getInitParameter("flvDAO");
		if(bean == null || bean.equals("")) {
			bean = "flvInfoDAO";
		}
		DAO dao = (DAO)applicationContext.getBean(bean);
		
		//创建一个监听线程 一直监视是否有需要转换的视频文件
		Thread thread;
		try {
			thread = new CreateConverterThread(executorService,dao,videoDir,waitTime);
			thread.setDaemon(true);//设置为后台线程
			thread.start();//开启线程
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -