package com.yihu.ehr.service.thread; import com.yihu.ehr.common.config.SysConfig; import com.yihu.ehr.common.config.ThreadConfig; import com.yihu.ehr.dbhelper.jdbc.DBConfig; import com.yihu.ehr.dbhelper.jdbc.DBHelper; import com.yihu.ehr.service.standard.StandardManager; import com.yihu.ehr.util.log.LogUtil; public class StandardUpdateThread implements Runnable { @Override public void run() { while (ThreadManage.standardUpdateIsRunning) { try { LogUtil.info("标准更新线程开始"); if (SysConfig.getInstance().isEmptyOrgCode()) { LogUtil.info("机构代码为空,无法更新标准!"); } else { StandardManager.getInstance().update(); } LogUtil.info("标准更新线程结束"); sleep(); } catch (InterruptedException e) { LogUtil.error("采集中断!"); LogUtil.error(e); continue; } catch (Exception e) { LogUtil.error("更新线程失败,将重新启动线程!"); LogUtil.error(e); try { sleep(); } catch (Exception e1) { continue; } continue; } } } private void sleep() throws Exception { if (ThreadConfig.UPDATE_THREAD_SLEEP_TIME == 0) { DBHelper db = new DBHelper(); Object obj = db.scalar("select param_value from system_param where param_key='UPDATE_INTERVAL'"); if(obj!=null) { ThreadConfig.UPDATE_THREAD_SLEEP_TIME = Integer.parseInt(obj.toString()); } } LogUtil.info("开始睡眠,睡眠时间:" + 1000 * ThreadConfig.UPDATE_THREAD_SLEEP_TIME); Thread.sleep(1000 * ThreadConfig.UPDATE_THREAD_SLEEP_TIME); } }