当前位置:编程学习 > JAVA >>

Ejb3 TimerService自动启动

请教个问题:
我用的是jboss4.2.1,部署stateless Bean之后,定时任务自动启动了。即@Timeout的方法自动被执行了。这是怎么回事儿?
代码如下:
@Stateless
public class TimerScanBean implements TimerTaskLocal, TimerTaskRemote {
@Resource
private TimerService ts;
private final int timeinterval = 10000;// 扫描间隔10s
private final int timestart = 600000;// 服务启动时间120s
private TimerInfo info;
private Timer timer;
private static final Log logger = LogFactory.getLog(TimerScanBean.class);

public void createTimerTask(TimerInfo info) {
this.info = info;
//查时间


Date date = new Date(System.currentTimeMillis() + timestart);
timer = ts.createTimer(date, timeinterval, info);
}

@Timeout
@SuppressWarnings("unchecked")
public void doTask(Timer timer) {
TimerInfo ti = (TimerInfo) timer.getInfo();
String path = ti.getBankInputPath();// 获得文件夹根路径

//TODO 显示日志
System.out.println("start scan1");   
      }
}

--------------------编程问答-------------------- 我也遇到了相同的情况,哪位高手能解答一下? --------------------编程问答-------------------- --------------------编程问答-------------------- 启动一次后 只要没取消 重起后还会继续执行的 --------------------编程问答-------------------- 除非清掉work/tmp目录 --------------------编程问答-------------------- @Stateless是在EJB容器下管理的,jboss启动肯定会去检查你这个类,同时也会触发Timer
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,