概述
定时服务与会话bean的开发过程大致相同,但比会话bean多了几个操作:
- 使用容器对象SeesionContext创建定时器。如:@Resource private SessionContext ctx;
- 使用@Timerout注释声明定时器方法。
例如:
package org.xixi.stateless;
import java.util.Date;
import javax.annotation.Resource;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.ejb.Timeout;
import javax.ejb.Timer;
@Stateless
public class TimerService implements TimerServiceRemote {
private int count = 1;
@Resource
private SessionContext ctx;
/* (non-Javadoc)
* @see org.xixi.stateless.TimerServiceRemote#scheduleTimer(long)
*/
public void scheduleTimer(long milliseconds) {
// TODO Auto-generated method stub
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();
}
count++;
}
}
- timer就是ctx.getTimerService().createTimer(new Date(new Date().getTime() + milliseconds), milliseconds, "*********"); 所创建的!
- timer.getaInfo()返回的信息就是上面创建timer时的第三个参数,例子中是“***************”.
- ctx.getTimerService().createTimer(new Date(new Date().getTime() + milliseconds), milliseconds, "*********"); 它包括三个参数分别是:
- 第一个:定时器启动的时间,如果传入时间小于现在,定时器会立刻启动。
- 第二个:间隔多长时间后再次触发定时事件,单位:毫秒。
- 第三个:传给定时器的参数信息,此值必须是实现Serializable接口。
最后
以上就是勤劳画板为你收集整理的定时服务的全部内容,希望文章能够帮你解决定时服务所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复