EJBTimer 使用EJB提供的定时器
2024-10-12 16:16:38
一、说明
EJB提供的定时器有两种,自动定时器和自定义定时器,自动定时器设置使用简单但是扩展较为麻烦,自定义定时器有较好的扩展性。
下面的例子中是把两中方式放到了一个测试类中。
二、示例
import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.annotation.Resource;
import javax.ejb.Schedule;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerService;
@Startup
@Singleton
public class TimerServiceBean {
@Resource
private TimerService timerServie;
private int num; // 设置自定义定时器的方法,需要客户端调用
public void setTimer(long outTime) {
timerServie.createTimer(new Date(new Date().getTime() + outTime), outTime, "testTimer");
} // 自定义定时器超时执行的方法
@Timeout
public void TimeOutAction(Timer timer) {
System.out.println("=====Timeout " + num + " success!");
num++;
if (num == 10) {
Collection<Timer> timers = timerServie.getTimers();
for (Timer t : timers) {
Serializable info = t.getInfo();
if ("testTimer".equals(info)) {
t.cancel();
}
}
num = 0;
}
} // 自动定时器配置极其超时执行方法
@Schedule(persistent = true, minute = "*", second = "*/5", hour = "*")
public void autoTimer() {
System.out.println("====Auto Timer working");
}
}
最新文章
- [No000070]Flash与C#通信
- HttpClient中转上传文件
- Maven的pom.xml标签详解
- GMap.NET使用一
- httpd的警告
- [原]用WebBrowser组件模拟人工运行搜索引擎自动点击搜索结果的实验
- Linux下pcapy的安装问题
- SCALA常规练习A
- Android 刷新下拉控制 SwipeRefreshLayout
- POJ 3177 Redundant Paths - from lanshui_Yang
- Eclipse的操作技巧
- strace命令详解
- Vue生命周期详解
- oracle提高查询效率的34条方法
- [转] Shell编程之数组使用
- Django-- KindEditor 富文本编辑器使用
- MT【229】最小值函数
- SQL[Err]ORA-00XXX: missing 相关
- leetcode367--Valid Perfect Square
- SpringBoot 读取配置文件及profiles切换配置文件
热门文章
- cookie的path和domain參数实例解析
- 10165 - Stone Game(Nim游戏)
- 最全的Swift社交应用文本输入优化汇总
- [精读]Spationtemporal Saliency Detection Using Textural Contrast and Its Applications
- MFC 单文档中动态添加菜单项和响应菜单事件
- 无边无状态栏窗口(使用GetWindowLongPtr设置GWL_EXSTYLE)
- Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通
- hdu 4277
- [置顶] 简单解析linux下进程通信方法
- Cocos2d-X3.0 刨根问底(九)----- 场景切换(TransitionScene)源代码分析