EJB 定时服务实现
来源:互联网 发布:我的世界手机版js天堂 编辑:程序博客网 时间:2024/04/28 21:42
用EJB3.0实现定时服务,并提供实现取消所有已启动的服务。
远程接口
package examples.timer.remote;/** *@Project:[SayHello] *@Package:[examples.timer.remote] *@Class:[TimerService.java] *@author: lhc *@time:2012-2-19 下午12:19:04 *@version: 1.0.0 *@Copy:2012 y_rich */public interface TimerService { public void scheduleTimer(long milliseconds); public boolean cancelTimer();}
实现
package examples.timer.Intface;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Iterator;import javax.annotation.Resource;import javax.ejb.Remote;import javax.ejb.SessionContext;import javax.ejb.Stateless;import javax.ejb.Timeout;import javax.ejb.Timer;import javax.persistence.EntityManager;import javax.persistence.Query;import examples.timer.remote.TimerService;/** *@Project:[SayHello] *@Package:[examples.timer.Inface] *@Class:[TimerServiceBean.java] *@author: lhc *@time:2012-2-19 下午12:20:49 *@version: 1.0.0 *测试EJB中构造函数和调用次数的关系 */@Stateless @Remote ({TimerService.class}) public class TimerServiceBean implements TimerService{ private @Resource SessionContext ctx; protected EntityManager em; //实体管理实例 protected Timer timer = null; public TimerServiceBean() { } public void scheduleTimer(long milliseconds) { //创建为间隔定时器 ctx.getTimerService().createTimer(new Date(new Date().getTime()),milliseconds, "Hello world... ..."); } /** * @param timer * 定期处理离线设备 */ @Timeout public void timeoutHandler(Timer timer) { System.out.println("Hello world from Timer!"); } @Override public boolean cancelTimer() { int iterTimersSize = ctx.getTimerService().getTimers().size(); if (iterTimersSize > 0) { Iterator iterTimers = ctx.getTimerService().getTimers().iterator(); System.out.println("Timer number -> "+ iterTimersSize); while(iterTimers.hasNext()) { this.timer = (Timer) iterTimers.next(); this.timer.cancel(); } return true; } else { return false; } } }
测试程序
package examples.timer.Inface;import java.util.Date; import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import examples.timer.remote.TimerService;public class TaskClient { public static void main(String[] args) { Hashtable evn = new Hashtable(); evn.put(Context.PROVIDER_URL, "127.0.0.1:1099"); evn.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); try { System.out.println(new Date().getTime()); InitialContext ctx=new InitialContext(evn); TimerService timer = (TimerService) ctx.lookup("TimerServiceBean/remote"); // timer.scheduleTimer((long)1000*2); System.out.println(timer.cancelTimer()); System.out.println("定时器已经启动"); } catch (Exception e) { e.printStackTrace(); } } }
希望对大家有一点帮助,哈哈。
- EJB 定时服务实现
- EJB 定时服务Timer Service
- EJB---->定时服务(Timer Service)
- EJB的定时任务
- Android定时广播和定时服务两种实现方式
- Android定时广播和定时服务两种实现方式
- 创建Windows服务程序实现定时操作
- android定时服务实现的相关开源包
- 创建Windows服务程序实现定时操作
- 创建Windows服务程序实现定时操作
- 利用crond服务实现NTP定时同步
- 想实现一个后台定时服务
- 定时检测服务状态脚本实现
- 使用HashedWheelTimer实现定时提醒服务
- EJB事务管理服务!!!
- EJB---->事务管理服务
- C# 实现Window服务实现定时发送邮件
- 使用Spring 实现 定时服务 的相关配置问题。
- 浅谈设计模式——简单工厂模式
- c语言清屏函数
- 今年第一个项目来说NET的中间语言
- Android面试问答题
- Android 开发环境安装手册下载
- EJB 定时服务实现
- C#将图片转换二进制保存至Xml
- 我不是天生的C++,也并非天生就喜欢电脑
- rsyslog 开启本地日志服务
- DOM案例----实现漂浮广告 超简单
- JS实现图片随机浮动效果
- 数据的一下应用和SQL数据库查询 左连接、右连接、内连接 实例
- 就掌握了成功的C++,那么信息从何而来
- 浅谈Android iPhone智能机触摸屏原理