我即将使用新的 EJB3 TimerService(作为 Java EE 6 的一部分),并且像往常一样,JavaDoc 的简洁性给我留下了深刻的印象:)
你知道它的作用是什么吗persistent
的财产TimerConfig
object?
JavaDoc 定时器配置 http://java.sun.com/javaee/6/docs/api/javax/ejb/TimerConfig.html says: 持久属性确定相应计时器的生命周期是否跨越创建它的 JVM。它是可选的,默认为 true。
持久属性意味着容器需要将计时器状态持久保存到数据库中。如果您需要保证即使服务器脱机(故意或崩溃)计时器也会触发,这一点很重要。当服务器重新上线时,需要执行错过的计时器。将计时器设置为持久性还会产生副作用,即确保计时器仅在一台服务器 JVM 中执行(但不一定是创建它的服务器),无论这对您的产品意味着什么。例如,在集群服务器环境中,这通常意味着即使 EJB 模块在 3 个 JVM 上运行,也只有一个 JVM 会执行计时器。
persist=true 是 EJB 3.1 之前唯一可用的选项。某些计时器操作不够重要,不足以保证这种级别的可靠性,因此添加了该选项以允许非持久计时器。将计时器设置为非持久性还会产生副作用,即确保它在创建它的 JVM 中运行。这对于更新内存缓存或静态 HTML 非常有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)