EJB-11:Time Service

本文介绍了EJB定时服务的工作原理及编程方式,包括如何利用TimerService API创建定时任务,并探讨了其优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Time Service(定时服务)

EJB如何调用EJB容器通过的定时服务?

在指定的某个时间点,执行相应的人任务。

常用的定时服务框架:

  EJB(Since EJB2.1)

  QuantZ(Open Source)

  脚本(如UINX中的cron at)

1、EJB定时服务的原理

  采用了模板方法

  ① 容器提供定时服务功能

  ② EJB要注册到定时服务器上

  ③ 到达指定时刻,容器会回调EJB中的方法

2、EJB定时服务的编程

TimerService API

  javax.ejb.TimerService<intenface>

  ① TimerService生成并返回一个Timer对象

  ② 构造在指定的时间点执行的Timer 或

     构造演示一段事件后重复执行的Timer

  ③ 定义回调方法 TimeObject<interface> 或

    a、EJB实现该接口

    b、容器回调TimeObject也可以采用标注@Timeout来定义回调方法

 

    通过EJBContext来获得定时服务

  @Resource private TimerService ts;

  ts.createTimer(Date date,long interval,String meetingNote)创建定时服务逻辑并注册

  @Timeout 标注该方法为定时服务方法,导师EJB容器会回调这个方法。

 

EJB定时服务的优缺点:

  优点:与平台无关,底层定时服务与EJB无关

  缺点:粗粒度,不能在配置文件中配置时间

日记显示部署成功但是quartz没动静 2025-08-01 16:36:25,180 INFO [stdout] (ServerService Thread Pool -- 113) 2025-08-01 16:36:25,206 INFO [stdout] (ServerService Thread Pool -- 113) 2025-08-01 16:36:25,206 INFO [stdout] (ServerService Thread Pool -- 113) . ____ _ __ _ _ 2025-08-01 16:36:25,206 INFO [stdout] (ServerService Thread Pool -- 113) /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ 2025-08-01 16:36:25,206 INFO [stdout] (ServerService Thread Pool -- 113) ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 2025-08-01 16:36:25,206 INFO [stdout] (ServerService Thread Pool -- 113) \\/ ___)| |_)| | | | | || (_| | ) ) ) ) 2025-08-01 16:36:25,206 INFO [stdout] (ServerService Thread Pool -- 113) ' |____| .__|_| |_|_| |_\__, | / / / / 2025-08-01 16:36:25,206 INFO [stdout] (ServerService Thread Pool -- 113) =========|_|==============|___/=/_/_/_/ 2025-08-01 16:36:25,206 INFO [stdout] (ServerService Thread Pool -- 113) 2025-08-01 16:36:25,206 INFO [stdout] (ServerService Thread Pool -- 113) :: Spring Boot :: (v3.4.0) 2025-08-01 16:36:25,206 INFO [stdout] (ServerService Thread Pool -- 113) 2025-08-01 16:36:25,930 INFO [io.undertow.servlet] (ServerService Thread Pool -- 113) Initializing Spring embedded WebApplicationContext 2025-08-01 16:36:27,209 INFO [jakarta.enterprise.resource.webcontainer.faces.config] (ServerService Thread Pool -- 113) Initializing Mojarra 4.0.7.redhat-00001 for context '/bancaws-scheduler' 2025-08-01 16:36:27,542 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 113) WFLYUT0021: Registered web context: '/bancaws-scheduler' for server 'default-server' 2025-08-01 16:36:27,568 INFO [org.jboss.as.server] (External Management Request Threads -- 1) WFLYSRV0010: Deployed "bancaws-scheduler.war" (runtime-name : "bancaws-scheduler.war")
最新发布
08-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值