Spring应用常驻内存的实现

简介:
一个后台应用程序,使用了Spring+iBatis框架。
有这样的需求,要求程序启动后,要一直驻留内存,而不能因为出现数据库连接失效、“闪动”、或者网线断了而挂起,因为没有人值守程序,并且当网络故障、数据库故障、配置参数等故障排除后,程序能根据修复的新状态继续执行。
 
实现方式:以前使用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。这样,整个程序的运行就是:一直执行任务,有任务就执行,没任务休息一段时间,有错误等待一段时间重试,没错误继续。
 
issuePlan.execute(); 是核心的后台任务执行者,这个方法在正常情况下是不会退出的,写法是while(true)逻辑,只有当发生一些严重错误会导致此方法发生异常退出。


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/204228,如需转载请自行联系原作者
相关文章
|
22天前
|
缓存 算法 Java
Java内存管理与调优:释放应用潜能的关键
【4月更文挑战第2天】Java内存管理关乎性能与稳定性。理解JVM内存结构,如堆和栈,是优化基础。内存泄漏是常见问题,需谨慎管理对象生命周期,并使用工具如VisualVM检测。有效字符串处理、选择合适数据结构和算法能提升效率。垃圾回收自动回收内存,但策略调整影响性能,如选择不同类型的垃圾回收器。其他优化包括调整堆大小、使用对象池和缓存。掌握这些技巧,开发者能优化应用,提升系统性能。
|
1月前
|
编解码 算法 Java
构建高效的Android应用:内存优化策略详解
随着智能手机在日常生活和工作中的普及,用户对移动应用的性能要求越来越高。特别是对于Android开发者来说,理解并实践内存优化是提升应用程序性能的关键步骤。本文将深入探讨针对Android平台的内存管理机制,并提供一系列实用的内存优化技巧,以帮助开发者减少内存消耗,避免常见的内存泄漏问题,并确保应用的流畅运行。
|
1月前
|
人工智能 关系型数据库 Serverless
Serverless 应用引擎常见问题之AI应用限制人为限制内存如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
29 3
|
1月前
|
存储 算法 编译器
【C++ 内存管理 重载new/delete 运算符 新特性】深入探索C++14 新的/删除的省略(new/delete elision)的原理与应用
【C++ 内存管理 重载new/delete 运算符 新特性】深入探索C++14 新的/删除的省略(new/delete elision)的原理与应用
46 0
|
26天前
|
安全 Java 数据安全/隐私保护
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
59 1
|
1天前
|
定位技术 Python
Pyglet综合应用|推箱子游戏之关卡图片载入内存
Pyglet综合应用|推箱子游戏之关卡图片载入内存
11 0
|
7天前
|
移动开发 Android开发 开发者
构建高效Android应用:采用Kotlin进行内存优化的策略
【4月更文挑战第18天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,由于设备和版本的多样性,确保应用流畅运行且占用资源少是一大挑战。本文将探讨使用Kotlin语言开发Android应用时,如何通过内存优化来提升应用性能。我们将从减少不必要的对象创建、合理使用数据结构、避免内存泄漏等方面入手,提供实用的代码示例和最佳实践,帮助开发者构建更加高效的Android应用。
11 0
|
9天前
|
缓存 移动开发 Java
构建高效的Android应用:内存优化策略
【4月更文挑战第16天】 在移动开发领域,尤其是针对资源有限的Android设备,内存优化是提升应用性能和用户体验的关键因素。本文将深入探讨Android应用的内存管理机制,分析常见的内存泄漏问题,并提出一系列实用的内存优化技巧。通过这些策略的实施,开发者可以显著减少应用的内存占用,避免不必要的后台服务,以及提高垃圾回收效率,从而延长设备的电池寿命并确保应用的流畅运行。
|
21天前
|
存储 安全 Java
Spring Security应用讲解(Java案列演示)
Spring Security应用讲解(Java案列演示)
|
27天前
|
Prometheus 监控 Cloud Native
Spring Boot 应用可视化监控
Spring Boot 应用可视化监控
15 0

热门文章

最新文章