StandardUpdateThread.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.yihu.ehr.service.thread;
  2. import com.yihu.ehr.common.config.SysConfig;
  3. import com.yihu.ehr.common.config.ThreadConfig;
  4. import com.yihu.ehr.dbhelper.jdbc.DBConfig;
  5. import com.yihu.ehr.dbhelper.jdbc.DBHelper;
  6. import com.yihu.ehr.service.standard.StandardManager;
  7. import com.yihu.ehr.util.log.LogUtil;
  8. public class StandardUpdateThread implements Runnable {
  9. @Override
  10. public void run() {
  11. while (ThreadManage.standardUpdateIsRunning) {
  12. try {
  13. LogUtil.info("标准更新线程开始");
  14. if (SysConfig.getInstance().isEmptyOrgCode()) {
  15. LogUtil.info("机构代码为空,无法更新标准!");
  16. } else {
  17. StandardManager.getInstance().update();
  18. }
  19. LogUtil.info("标准更新线程结束");
  20. sleep();
  21. } catch (InterruptedException e) {
  22. LogUtil.error("采集中断!");
  23. LogUtil.error(e);
  24. continue;
  25. } catch (Exception e) {
  26. LogUtil.error("更新线程失败,将重新启动线程!");
  27. LogUtil.error(e);
  28. try {
  29. sleep();
  30. } catch (Exception e1) {
  31. continue;
  32. }
  33. continue;
  34. }
  35. }
  36. }
  37. private void sleep() throws Exception {
  38. if (ThreadConfig.UPDATE_THREAD_SLEEP_TIME == 0) {
  39. DBHelper db = new DBHelper();
  40. Object obj = db.scalar("select param_value from system_param where param_key='UPDATE_INTERVAL'");
  41. if(obj!=null) {
  42. ThreadConfig.UPDATE_THREAD_SLEEP_TIME = Integer.parseInt(obj.toString());
  43. }
  44. }
  45. LogUtil.info("开始睡眠,睡眠时间:" + 1000 * ThreadConfig.UPDATE_THREAD_SLEEP_TIME);
  46. Thread.sleep(1000 * ThreadConfig.UPDATE_THREAD_SLEEP_TIME);
  47. }
  48. }