开发过程与session bean 大致相同。但是多了几个操作。利用SessionContext创建定时器,并用@Timeout声明定时器方法。
@Stateless
@Remote ({TimerService.class})
public class TimerServiceBean implements TimerService {
private int count = 1;
//获得SessionContext对象
private @Resource SessionContext ctx;
public void scheduleTimer(long milliseconds){
count = 1;
//创建定时器
ctx.getTimerService().createTimer(new Date(new Date().getTime() + milliseconds),
milliseconds, "大家好,这是我的第一个定时器");
}
@Timeout
public void timeoutHandler(Timer timer)
{
System.out.println("---------------------");
System.out.println("定时器事件发生,传进的参数为: " + timer.getInfo());
System.out.println("---------------------");
if (count>=5){
timer.cancel();//如果定时器触发5 次,便终止定时器
}
count++;
}
}
public interface TimerService {
public void scheduleTimer(long milliseconds);
}