package com.yihu.ehr.common; import com.yihu.ehr.common.config.SysConfig; import com.yihu.ehr.dbhelper.jdbc.DBHelper; import com.yihu.ehr.service.thread.CrawlerSupplyThread; import com.yihu.ehr.service.thread.CrawlerThread; import com.yihu.ehr.service.thread.StandardUpdateThread; import com.yihu.ehr.service.thread.ThreadManage; import com.yihu.ehr.util.log.LogUtil; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.Properties; /** * 线程启动执行 * add by hzp at 2016-03-17 */ public class ThreadStart implements ServletContextListener { private static Properties prop = new Properties(); private String log4jDirKey = "log4j"; @Override public void contextInitialized(ServletContextEvent context) { try { String home = System.getProperty("catalina.home").replace('\\','/'); String homeUrl = home.substring(0,home.lastIndexOf('/')+1); crawlerConfig(homeUrl); startThread(); } catch (Exception e) { System.out.print(e.getStackTrace().toString()); } } @Override public void contextDestroyed(ServletContextEvent context) { } /** * 采集配置 * @param homeUrl * @throws Exception */ private void crawlerConfig(String homeUrl) throws Exception { System.setProperty(log4jDirKey, homeUrl + "log4j"); SysConfig.getInstance().setTempFile(homeUrl + "standard"); } /** * 启动线程 */ private void startThread() { try { DBHelper db = new DBHelper(); Object obj = db.scalar("select param_value from system_param where param_key='ORG_CODE'"); if (obj != null) { SysConfig.getInstance().setOrgCode(obj.toString()); } Thread crawlerThread = new Thread(new CrawlerThread()); Thread crawlerSupplyThread = new Thread(new CrawlerSupplyThread()); Thread standardUpdateThread = new Thread(new StandardUpdateThread()); ThreadManage.add(ThreadManage.CRAWLER_THREAD, crawlerThread); ThreadManage.add(ThreadManage.CRAWLER_SUPPLY_THREAD, crawlerSupplyThread); ThreadManage.add(ThreadManage.STANDARD_UPDATE_THREAD, standardUpdateThread); ThreadManage.setCrawlerInterval(); ThreadManage.setUpdateInterval(); //启动线程 crawlerThread.start(); crawlerSupplyThread.start(); standardUpdateThread.start(); } catch (Exception e) { LogUtil.error(e.getStackTrace().toString()); } } }