如何更改执行EJB TimeService的时间

时间:2016-12-09 00:05:25

标签: java timer ejb

我希望每天在特定时刻每天运行一个进程。我想使用EJB的Timerservice,但我只能找到如何设置间隔,而不是一天中的特定小时:

@Resource
    protected TimerService timerService;

    @Timeout
public void timeoutHandler(Timer timer) {
    String name = timer.getInfo().toString();
    System.out.println("Timer name=" + name);
}

public void startOrModifyTimer(long initialExpiration, long interval, String name){      
    //Cancel previous timer
    Collection<Timer> timers = timerService.getAllTimers();
    for (Timer timer: timers) {
        if (timer.getInfo().equals(name)) {
            timer.cancel();
        }
    }

    TimerConfig config = new TimerConfig();
    config.setInfo(name);
    config.setPersistent(false);
    timerService.createIntervalTimer(initialExpiration, interval, config);
}

我想从&#34;每天凌晨2点更改计时器&#34;到每天凌晨3点&#34;每天凌晨3点。在运行时。

1 个答案:

答案 0 :(得分:1)

你想:

createCalendarTimer(ScheduleExpression schedule) 

ScheduleExpression将执行您想要的操作。