Spring应用常驻内存的实现Java认证考试

文章作者 100test 发表时间 2010:01:01 15:48:44
来源 100Test.Com百考试题网


  一个后台应用程序,使用了Spring iBatis框架。
  有这样的需求,要求程序启动后,要一直驻留内存,而不能因为出现数据库连接失效、“闪动”、或者网线断了而挂起,因为没有人值守程序,并且当网络故障、数据库故障、配置参数等故障排除后,程序能根据 修复的新状态继续执行。来源:www.100test.com
  实现方式:以前使用Linux操作系统的shell脚本定时检测,但是俺不会写shell脚本。
  于是有了下面的实现方式:
  public static void main(String[] args) {
  while (true) {
  try {
  ctx = ApplicationContextUtil.getApplicationContext().
  IssuePlan issuePlan = (IssuePlan) ctx.getBean("issuePlan").
  issuePlan.execute().
  } catch (Throwable e) {
  log.error("网络视频节目分发程序启动发生了严重错误!", e).
  try {
  Thread.sleep(pause_timespan * 1000L).
  } catch (InterruptedException e1) {
  }
  }
  }
  }
  这种方式运行良好,每次因为严重错误都会重新初始化Spring的ApplicationContext。这样,整个程序的运行就是:一直执行任务,有任务就执行,没任务休息一段时间,有错误等待一段时间重试,没错误继续。源:www.examda.com
  issuePlan.execute(). 是核心的后台任务执行者,这个方法在正常情况下是不会退出的,写法是while(true)逻辑,只有当发生一些严重错误会导致此方法发生异常退出。

  一个有趣的编程:程序员的爱情故事

  Java认证权威问答精华集



相关文章


正则表达式在java程序中的应用分析Java认证考试
Java的泛型原来这样让人不舒服Java认证考试
java认证辅导:java基础常见错误总结Java认证考试
启动Java应用的Shell脚本Java认证考试
Spring应用常驻内存的实现Java认证考试
JavaHOTSPOTVM参数大全Java认证考试
慎用java的多维数组Java认证考试
全面掌握java枚举类型Java认证考试
Java认证辅导:Java可变长参数Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛