【问题标题】:How do I create a non-persistent EJB 3.1 Timer?如何创建非持久性 EJB 3.1 计时器?
【发布时间】:2012-02-23 02:17:17
【问题描述】:

使用 NetBeans 7.1 / GlassFish 3.1,我创建了一个新的 TimerSessionBean。

@Stateless
public class NewTimerSessionBean implements NewTimerSessionBeanLocal {

    @Schedule(minute = "*", second = "0", dayOfMonth = "*", month = "*", year = "*", hour = "9-17", dayOfWeek = "Mon-Fri")
        @Override
        public void myTimer() {
            System.out.println("Timer event: " + new Date());
        }
}

如何声明计时器是非持久的? http://www.theserverside.com/news/1363578/EJB-31-A-Significant-Step-Towards-Maturity 说有一个方法 isPersistent 但它属于 Timer 接口。

我在阅读了这篇文章中对 EJB 计时器潜在问题的描述后提出了这个问题:http://www.coderanch.com/t/477104/EJB-JEE/java/Java-EE-timer-service-periodical

【问题讨论】:

    标签: java timer ejb ejb-3.1


    【解决方案1】:

    根据this 文章,您可以通过在@Schedule 上添加 persistent=false 来实现此目的

    【讨论】:

    • 如果您正在初始化自己的 TimerService 实例,例如#createSingleActionTimer(..) 你可以通过TimerConfig 实例使用setPersistent(boolean) 方法指定它的持久性。
    猜你喜欢
    • 2021-04-20
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 2015-12-20
    相关资源
    最近更新 更多