ejb3.0学习 -- 定时服务

来源:互联网 发布:网络凭据用户名和密码 编辑:程序博客网 时间:2024/04/30 15:37

开发过程与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);
 }