我目前有一个拥有@ schedule的EJB,每5分钟运行一次,但我只在ejb初始化后运行。
问题是你是否可以在部署之后使计时器开始运行,并且不要等到调用EJB才能启动。
这是我的代码:
@Remote(ServiceRemote.class)
@Stateless(mappedName = "ejb/ServiceEJBSL")
public class ServiceBean implements ServiceRemote {
@Schedule(second="*", minute="*/5", hour="*", dayOfWeek="0-6")
public void autmaticTimer() throws Exception, RemoteException{
System.out.println("do something");
}
}
我是在glasfish服务器上做过的,但似乎没有同样的工作方式。
提前致谢。
答案 0 :(得分:1)
您需要 GlassFish v3。+ ,因为此功能已添加到 EJB 3.1
中自动计时器由企业的EJB容器创建 包含使用
@Schedule
或注释的方法的bean 部署了@Schedules
个注释。
@Schedule(minute="*/5", hour="*")
public void automaticTimer() throws Exception, RemoteException{
System.out.println("do something");
}
加成
尝试添加
@Schedule(minute="*/5", hour="*", persistent=false)
如果keepstate
设置为true
时已存在,则不会重新创建永久定时器。
见