【问题标题】:how to pause and restart an automatic ejb如何暂停和重新启动自动 ejb
【发布时间】:2020-04-26 19:00:03
【问题描述】:

我正在研究 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。谢谢。 更新:现在它起作用了。但是如何暂停并重新启动呢?

【问题讨论】:

  • 您的 EJB 将在下午 03:00 点打印一些内容。这是正确的?让我们尝试一些不同的东西,例如:second = "*/10" 这意味着每 10 秒

标签: java ejb wildfly ejb-3.2


【解决方案1】:

没有“暂停”和“重启”之类的东西,但是您可以取消使用@Schedule 声明的基于注释的计时器,然后重新创建它。您必须将调度程序表达式存储在某处。

你可以这样做:

@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);
}

【讨论】:

  • 你能试试吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 2013-07-06
  • 2014-02-15
  • 2012-01-22
  • 2020-04-09
  • 2015-06-18
相关资源
最近更新 更多