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