如何暂停和重新启动自动ejb

问题描述 投票:1回答:1

我正在研究EJB并通过创建如下所示的简单EJB来测试自动功能。我希望它一旦部署就可以自动运行。

import javax.ejb.Schedule;
import javax.ejb.Stateless;
@Stateless
public class TestAuto {

@Schedule(minute="*",hour="15")
    public void testprint()
    {
        System.out.println("AutoWrite");
    }
}

我在eclipse上运行了它,并成功部署了它,但是在控制台上看不到任何输出。有人可以帮忙吗?我使用了wildfly 11,java 1.8和ejb 3.2。谢谢。更新:现在可以了。但是如何暂停并重新启动呢?

java ejb wildfly ejb-3.2
1个回答
0
投票

没有“暂停”和“重新启动”之类的东西,但是您可以取消使用@Schedule声明的基于注释的计时器,然后重新创建它。您将不得不将schedulerexpression存储在某个地方。

您可以执行以下操作:

@Resource
private TimerService timerService;

public ScheduleExpression cancelTimer() {
    Timer currentTimer = timerService.getTimers().iterator().next();
    ScheduleExpression scheduleExpression = currentTimer.getSchedule();
    currentTimer.cancel();
    return scheduleExpression;
}

public void restartTimer(ScheduleExpression scheduleExpression) {
    timerService.createCalendarTimer(scheduleExpression);
}
© www.soinside.com 2019 - 2024. All rights reserved.