1

我必须使用 ejb 中的 @schedule 注释每 10 分钟一个接一个地运行两个方法。

我的代码是这样的:

@Schedule(minute="*/10")
public void mth1() { 
    System.out.println("welcome");
}

@Schedule(minute="*/10")    
public void mth2() {
    System.out.println("hello");
} 

如何进行?

感谢您的回复..但是,两个 mthds 的计时器分别设置为 10 分钟。第 1 个 mthd 完成后,第 2 个 mthd 开始执行。如果我在第一个 mthd 中调用第二个 mthd,两者都在 10 分钟内运行 ..我想每个运行 10 分钟

4

2 回答 2

3

If you want to have mth2 executed after mth1, you can just call mth2 at the end of mth1 and remove the Schedule annotation from mth2.

于 2012-12-01T07:08:16.617 回答
0

您可以尝试下面的代码让计时器一个接一个地执行,延迟特定的时间间隔。

@Schedule(minute="*/10")
public void mth1() { 
    System.out.println("welcome");

    //-- Creating a timer manually for mth2
    timerService.createTimer(duration, info);

}

在指定的时间间隔之后,将调用超时方法,并用@Timeout 注解标记 meth2()。因此,meth1() 退出时,将在 x 单位持续时间后调用 meth2()。

@Timeout
public void mth2(Timer timer){
    System.out.println("hello");
}
于 2012-12-03T10:11:38.707 回答