ejb3提供了,定时执行某项任务的功能
实现步骤:
1 . 创建一个sessionbean 和对应的接口 这个没什么特殊,跟以往一样
2. 获取一个sessionContext对象
3 . 在sessionContext中get到TimerService
4. 在TimeService中获取到Timer对象,创建该对象时候第一个参数代表定时任务开始执行的时间(精确到毫秒),第二个参数代表建个多久,第三个为传入的参数(这个参数在执行任务的时候可以取到)
5.写一个方法,名称规则为public xxx(Timer timer)
6. 用annotation Timeout修饰这个方法
代码实现
package com.foshanshop.ejb3.timer;
publicinterface TimerService
{
publicvoid scheduleTimer(long milliseconds);
}
package com.foshanshop.ejb3.timer;
import java.util.Date;
import javax.annotation.Resource;
import javax.ejb.Remote;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.ejb.Timeout;
import javax.ejb.Timer;
@Stateless
@Remote({TimerService.class})
publicclass TimerServiceBean implements TimerService
{
intcount = 0;
public@Resource SessionContext sctx;
publicvoid scheduleTimer(long milliseconds)
{
sctx.getTimerService().createTimer(new Date(new Date().getTime()+milliseconds),milliseconds,"我的第一个定时器");
System.out.println("begin");
}
@Timeout
publicvoid timeoutHandler(Timer time)
{
System.out.println("定时器发生"+time.getInfo());
count++;
if(count>5)
time.cancel();
}
public SessionContext getSctx()
{
returnsctx;
}
publicvoid setSctx(SessionContext sctx)
{
this.sctx = sctx;
}
}
执行结果
11:03:15,750 INFO [STDOUT] begin
11:03:16,750 INFO [STDOUT] 定时器发生我的第一个定时器
11:03:17,765 INFO [STDOUT] 定时器发生我的第一个定时器
11:03:18,750 INFO [STDOUT] 定时器发生我的第一个定时器
11:03:19,750 INFO [STDOUT] 定时器发生我的第一个定时器
11:03:20,750 INFO [STDOUT] 定时器发生我的第一个定时器
11:03:21,750 INFO [STDOUT] 定时器发生我的第一个定时器
分享到:
相关推荐
以下是对EJB 3.0定时服务的详细介绍: 1. **定时服务简介** EJB 3.0中的定时服务允许开发者定义定时触发的任务,这些任务可以是单次执行或重复执行。它基于Java EE平台的JSR 318规范,提供了一种标准的方式来调度...
**EJB3.0实例教程及源代码** 本教程专注于企业级JavaBeans(EJB)3.0技术的实践应用,由黎活明提供。EJB是Java平台上的一个核心组件,用于构建可扩展的、可靠的、安全的分布式应用程序。EJB 3.0是EJB规范的一个重要...
9. **定时器服务(Timer Service)**:EJB3.0提供定时任务功能,通过`@Schedule`注解可以在特定时间执行方法。 在学习这个源码教程时,你可以通过阅读和运行代码,了解每个EJB3.0核心组件的使用方法,逐步掌握如何...
6. **定时器服务**:EJB3.0提供了一个定时器服务,允许Bean执行定时任务,例如`@Schedule`注解可以用来定义定时任务。 7. **查询语言JPA的JPQL**:JPA(Java Persistence Query Language)是EJB3.0中用于查询数据库...
### EJB3.0中文文档知识点总结 #### 第一章:EJB知识与运行环境配置 **1.1 什么是ENTERPRISE JAVA BEANS (EJB)** EJB(Enterprise JavaBeans)是一种Java标准,用于构建分布式、健壮的企业级应用程序。它允许...
3. **TimerService** - ejb3.0引入了定时服务(Timer Service),允许bean设置定时任务。`TimerService`接口提供了创建、管理和查询定时器的方法,使得bean可以在特定时间执行预定的任务,例如执行后台处理或发送...
`TimerService`是EJB3.0的一个重要特性,它允许定时任务的调度。在这个例子中,你会看到如何创建定时器,以及如何设置触发器和执行回调方法。 #### 2.3 `CompositePK` `CompositePK`示例展示了如何处理具有复合主键...
- **定时任务**:利用`@Schedule`注解创建定时任务,自动执行周期性工作。 5. **EJB 3.0的挑战与解决方案**: - **性能优化**:虽然EJB简化了开发,但可能带来额外的性能开销,需要合理设计bean的粒度和缓存策略...
10. **EJB Timer服务**:EJB3.0提供定时任务功能,允许Bean在预定的时间执行特定任务,通过`@Schedule`注解实现。 通过这个入门经典教程,学习者将能够理解EJB3.0的核心概念,如何创建和部署EJB,以及如何利用EJB的...
EJB3.0提供了一系列预定义的服务,如安全性(@RolesAllowed)、定时服务(@Schedule)、邮件服务(@MessageDriven)等,方便开发者快速接入。 8. **轻量级容器支持** EJB3.0不仅适用于传统的Java EE服务器,还...
EJB3.0引入了`TimerService`,使得开发者可以方便地创建定时任务。`TimerService`允许你设定定时器,触发方法执行,从而实现周期性或延迟的业务逻辑。 4. **会话bean生命周期(SessionBeanLifeCycle)** 会话bean...
EJB (Enterprise JavaBeans) 是 Java 平台中用于构建企业级分布式应用程序的组件模型。...这有助于理解EJB 3.0的简化编程模型,以及如何利用定时服务实现定时任务,这对于构建可扩展的、健壮的企业级应用非常重要。
EJB 3.0容器提供了一系列服务,包括生命周期管理、资源注入、并发控制、定时服务、JMS消息驱动Bean等。这些服务帮助开发者专注于业务逻辑,而不必担心底层实现。 总的来说,EJB 3.0规范极大地简化了Java企业级应用...
例如,`@Schedule`注解可以用于定时任务的调度。 ### 9. 组件间通信 EJB3.0提供了一种安全、高效的方式来实现组件间的通信。`@EJB`注解可以用于注入其他EJB,而`@Remote`和`@Local`接口则定义了客户端调用Bean的...
EJB 3.0 支持定时任务(Timers),允许 Bean 在未来某个时间点执行代码。 ##### 3.9 支持 Web 服务 EJB 3.0 提供了与 Web 服务更好的集成能力,允许 Bean 直接充当 Web 服务端点。 #### 四、EJB 3.0 规范的关键...
- 支持定时任务的执行。 ##### 7. **安全服务** - 实现认证和授权功能,确保应用的安全性。 #### 六、JMS(Java Message Service) ##### 1. **消息驱动Bean** - 用于接收消息队列中的消息。 - 包括两种消息...
**EJB 3.0 实战教程代码解析** ...通过以上实例,开发者可以全面了解EJB 3.0的各个方面,包括数据库交互、定时任务、生命周期管理、对象持久化、Web服务集成以及依赖注入等,从而更好地掌握企业级Java应用的开发。
- 介绍如何利用EJB3.0提供的定时服务功能实现任务调度。 - **安全服务 (Security Service)**: - 详述EJB3.0的安全模型和认证机制。 - 自定义安全域的实现方法。 #### 五、消息驱动Bean (Message Driven Bean) ...