我必须使用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个mth完成后,mthd开始执行。如果我在第一个月的第二个mthd都在10分钟内运行..我想每个运行10分钟
答案 0 :(得分:3)
如果你想在mth1之后执行mth2,你可以在mth1的末尾调用mth2并从mth2中删除Schedule注释。
答案 1 :(得分: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");
}