Han*_*ank 31 timer ejb-3.0 java-ee-6
我正准备使用新的EJB3 TimerService(作为Java EE 6的一部分),和往常一样,我对JavaDoc的简洁性印象深刻:)
你知道对象的persistent
属性有什么影响TimerConfig
吗?
JavaDoc TimerConfig说:persistent属性确定相应的计时器是否具有跨越创建它的JVM的生命周期.它是可选的,默认为true.
Bre*_*ail 53
持久属性意味着容器需要将计时器状态持久保存到数据库.如果您需要保证即使服务器脱机(故意或崩溃)也会触发计时器,这一点很重要.当服务器重新联机时,需要执行错过的计时器.将计时器设置为持久性还具有确保计时器仅在一个服务器JVM(但不一定是创建它的计算机)中执行的副作用,无论对您的产品意味着什么.例如,在集群服务器环境中,这通常意味着即使EJB模块在3个JVM上运行,也只有一个JVM将执行计时器.
persistent = true是EJB 3.1之前唯一可用的选项.某些定时器操作不足以保证此级别的可靠性,因此添加了选项以允许非持久性定时器.将计时器设置为非持久性也具有确保其在创建它的JVM中运行的副作用.这对于更新内存缓存或静态HTML非常有用.