您可以将无状态会话或单例bean与EJB计时器和计时器服务结合使用.bean将是远程客户端用来控制后台进程的接口.计时器服务会定期回调bean上的方法以验证条件.计时器由EJB容器自动持久化,因此当bean客户端断开连接时,它们将完成工作.
这是一个草图:
@Singleton
...
public TimerMangerbean implements TimerManager {
@Resource
private TimerService timerService;
public void startMonitoring() {
//start in 5 sec and timeout every 10 minutes
Timer timer = timerService.createTimer(5000, 60000, "MyTimer");
}
public void stopMonitoring() {
Collection<Timer> timers = timerService.getTimers();
for(Timer timer : timers) {
//look for your timer
if("MyTimer".equals(timer.getInfo())) {
timer.cancel();break;
}
}
}
//called every 10 minutes
@Timeout
public void onTimeout() {
//verify the condition and do your processing
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5483 次 |
| 最近记录: |