有没有办法在运行时停止/重新启动 ejb 3.1 自动计时器?

2024-01-09

我正在尝试使用一个简单的自动 EJB 计划/计时器。我的代码是这样的:

@Singleton
@Lock(LockType.READ)
public class Scheduler {

    @Schedule(second = "0", minute = "*/20", hour = "*"),
    private void fetchSomeData() {
        ...
    }

    @Schedule(second = "0", minute = "*/5", hour = "*"),
    private void cleanThingsUp() {
        ...
    }

}

有没有办法在运行时停止和重新启动自动计时器?请注意,我不需要更改超时,我只需要停止和启动计时器。到目前为止我发现的所有教程和示例根本没有提到停止/启动概念(这是为了简单的@日程计时器)。


在 ejb 定时器中,与 Start&Stop 相关的最接近的想法是 Create&Cancel。

发布的代码显示您正在使用Automatic Timer它们很容易创建,但有一个缺点:计时器只会在部署时由容器自动创建。 这为创建操作留下了很小的余地。

但是,定时器一旦创建,就可以调用 Timer.cancel() 方法来取消。

e.g.:

@Singleton
@Remote
public class MyTimer implements MyTimerRemote {

@Resource
TimerService timerService;

//MyTimer1, notice the info attribute
@Schedule (hour="*", minute="*", second="*", info="MyTimer1")
public void doSomthing(){
    System.out.println("Executing Timer 1");
}

//MyTimer2
@Schedule (hour="*", minute="*", second="*", info="MyTimer2")
public void doSomthing2(){
    System.out.println("Executing Timer 2");
}


//call this remote method with the Timer info that has to be canceled
@Override
public void cancelTimer(String timerInfo) {

    for (Timer timer: timerService.getTimers()) {
        if (timerInfo.equals(timer.getInfo())) {
            System.out.println("Canceling Timer: info: " + timer.getInfo());
            timer.cancel();
        }

    }   
}

另一种选择是创建一个Programatic Timer,这意味着需要更多的代码,但您可以决定何时创建特定的计时器。

//you can call this remote method any time 
@Override
public void createProgramaticTimer(String timerInfo) {
    System.out.println("Creating new PT: " + timerInfo);
    TimerConfig timerConf = new TimerConfig();
    timerConf.setInfo(timerInfo);
            //create a new programatic timer
    timerService.createIntervalTimer(1, 1000, timerConf); //just an example


}

@Timeout
public void executeMyTimer(Timer timer){
    System.out.println("My PT is executing...");

}

取消操作与自动定时器相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法在运行时停止/重新启动 ejb 3.1 自动计时器? 的相关文章

  • 事务第一次失败,显示 IJ000457、IJ000461 和 IJ000356,但此后可以正常工作

    我正在尝试在Wildly服务器上使用JPA运行JSF应用程序 我有以下代码 第一次尝试添加员工时出现异常 但是当再次尝试时 它工作正常 我没有找到原因 请帮助 会话豆 import javax ejb Stateless import ja
  • 缓存条目未使用

    我们有一个使用以下技术的 Web 应用程序 JSF 2 0 EJB 3 1 JPA 2 0 JBoss AS 7 1 Final 有时我们会突然出现以下异常 09 46 29 664 ERROR org jboss ejb3 invocat
  • 使用VB.net创建计划任务[重复]

    这个问题在这里已经有答案了 如何使用 VB NET 创建计划任务 单击按钮时从 vb net 程序填充计划任务字段 我现在什么都没有 也不知道是否可能 您必须围绕本机 COM 接口创建包装器 如果你不想自己做 你可以使用这个库https t
  • EJB @Schedule 等待方法完成

    我想编写一个每分钟执行一次的后台作业 EJB 3 1 为此 我使用以下注释 Schedule minute 1 hour 工作正常 但是 有时该作业可能需要一分钟以上的时间 在这种情况下 计时器仍然会被触发 从而导致线程问题 如果当前执行未
  • 遗留应用程序的迁移:EJB3或Spring

    我有旧应用程序使用struts ejb2 0 hibernate v3 0在 JBoss v4 0 上运行 现在我们已经将该应用程序迁移到新技术堆栈 我们正在探索pros and cons不同的技术堆栈 现在我们有两种选择 EJB3 0 J
  • CDI 注入 POJO 何时应该起作用? (玻璃鱼 v3)

    当我将 EJB 3 1 beans 注入到 Inject 创建的 POJO 中时 注入就会起作用 当我自己构建 POJO 时 它不会 Glassfish v3 这是正确的行为吗 我的类 在 EJB 模块中 Singleton LocalBe
  • 将 EJB Jar 部署到 Glassfish 时出现异常

    这是我第一次尝试使用 JMS 我已经成功创建 部署了一个 war 文件 其中包含一个可用于上传文件的 servlet 上传文件时 它会向 JMS 队列发送一条消息 接下来 我编写了一个侦听器来从队列中检索上传的消息 但是当我尝试部署它时 出
  • 让表示层(JSF)处理来自服务层(EJB)的业务异常

    更新提供的实体的 EJB 方法 使用 CMT Override SuppressWarnings unchecked public boolean update Entity entity throws OptimisticLockExce
  • EJB注入时出现空指针异常

    我用一个无状态 Ejb 编写了非常简单的 Web 应用程序 当我实现接口时 有趣的时刻到来了 ejb 依赖注入不起作用 web xml
  • 为什么我不能将会话 bean 作为 Java EE 5 中的 JSF 支持 bean

    AFAIK JBoss Seam 的全部目的是集成 EJB 和 JSF Seam in Action 一书说道 根据设计 EJB 组件不能直接绑定到 JSF 视图 EJB 真是太棒了 组件具有可扩展性 事务性 线程安全性和安全性 但作用不大
  • AltBeacon 应用程序在几分钟后重新启动

    我的应用程序遇到一些问题 我在禁用 RegionBootstrap 并通过 System exit 0 关闭应用程序后 我的应用程序在几分钟后 通常是 3 4 分钟 会自行重新启动 这是我每次重新启动应用程序时发现的 Logcat 行 20
  • EJB3 Glassfish JNDI 查找

    我正在使用 Glassfish 捆绑的 Eclipse IDE 我编写了一个简单的 EJB 应用程序 但它不起作用 Stateless Remote CalculatorRemote class Local CalculatorLocal
  • JMS队列消息接收顺序

    我按顺序在同一目标中添加两条 JMS 消息 这两条消息的接收顺序是否与我添加它们的顺序相同 或者是否有可能进行相反的排序 即首先检索目的地中首先接收到的消息 我将添加到目的地 producer send Msg1 producer send
  • AWS ECS 重启策略

    我检查了在 ECS 集群中运行的一个 docker 容器 它的重启策略为空白 HostConfig RestartPolicy Name 我不确定 ECS 在发生故障时会做什么 但我想将策略更改为在实例中运行的 cmd 失败时重新启动容器实
  • Python 调度一个作业,每个工作日开始,每小时运行一次

    我目前有一个示例代码定义为 import schedule import time def job t print I m working t return schedule every day at 01 00 do job It is
  • 具有多个数据源的 Tomcat 6/7 JNDI

    当有多个时
  • 独立 JBoss EJB 客户端应用程序 - 如何获取 JNDI 连接 - “独特名称”

    关于从独立应用程序远程访问 JBoss EJB 存在大量令人沮丧的不正确 更好的描述 关闭但没有雪茄 信息 我已经把头撞在墙上一天多了 但没有成功 我正在尝试将 EJB 从 WebLogic 移植到 JBoss 它由另一台服务器上运行的独立
  • 从一台服务器到多台可配置服务器的 JNDI 查找

    我们在具有不同 IP 的不同机器上有几个 JBoss 服务器 不是集群 而是属于不同客户的单个独立 JBoss 7 1 1 实例 所有系统上都部署了完全相同的 EAR 我们尝试发送一个名为Group从一个系统到另一个系统 问题 我们尝试了一
  • 如何根据服务器/环境动态加载服务器配置?

    目前 我设置了 Maven 配置文件 以便能够为不同的环境 开发 演示 暂存 生产等 部署我的项目 并且它工作得很好 但问题是 对于我拥有的每个模块 Web 应用程序 我需要复制 粘贴此配置文件 它们都是属性文件 当我需要更改环境 服务器配
  • 有时您可能需要重新启动 Webrick 才能看到所做的更改,这是否正确?

    我听 Kevin Skoglund lynda com 说 养成在开发过程中频繁重新启动 Webrick 的习惯是一个很好的习惯 虽然通常您不需要重新启动 Webrick 来查看更改 但他暗示在某些特殊情况下可能需要这样做 有谁知道这些情况

随机推荐

  • 带有嵌入视频的 WebView 在后台播放

    我有一个托管嵌入式视频的 WebView 当我降级 Webview 时 视频的声音会继续播放 我怎样才能阻止这个 我确实尝试过webview destroy 但是当我尝试再次打开 WebView 时 该力量会关闭应用程序 您必须调用 Web
  • swift中前缀头的引用类定义

    我正在将 swift 代码添加到现有的 Objective C 项目中 我在引用现有前缀标头中的定义时遇到问题 我有一个名为 MyClass 的类 在 Objective C 中用 h 定义 interface MyClass instan
  • 动态添加子视图时,TableLayout(TableRow?)未按预期调整子视图的大小

    Context 我有一个 TableLayout 使用 XML 创建 其中有一个 TableRow 其中有一个 TextView 代码
  • 如何在 Android(和 iOS)上查看 JavaScript 控制台?

    我正在创建一个纯粹基于浏览器的应用程序 HTML 和 JavaScript 我没有安装 Android IDE 也没有安装适用于 iOS 的 IDE 并且不想安装 IDE 并执行远程调试 在我的 PC 上进行开发时 我使用 Chrome 浏
  • 如何保存 git“rebase 正在进行中”?

    我正处于一个大型的 正在进行的重新调整 之中 有很多冲突 我想搁置这一进展并尝试使用另一种方法来解决此问题 有什么办法可以拯救进行中变基以便我稍后可以完成它 如果您在变基过程中遇到冲突的合并 那么您就会陷入困境 以下是您的原因 方式和内容c
  • (<*>) 中的 * 有特殊含义吗?

    试图扩展我对 Haskell 中符号的理解 函数应用运算符 允许您在函数上应用参数 函数应用运算符的翻转版本 flip lt gt 结合运算符 您可以在半群和幺半群中找到它 lt gt 功能应用 提升到 Functor 结构上 lt gt
  • 如何从图像中剪切并保存矩形?

    如何剪切图像并将其保存为另一图像 If src is a BufferedImage 然后你可以切割矩形 x1 y1 x2 y2 从它写到dst png像这样 final BufferedImage dst new BufferedImag
  • Groovy 脚本无法从 Jenkins DSL 作业调用 Slack 通知参数

    我第一次尝试使用 Jenkins Job DSL 插件来创建一些基本的作业 模板 然后再进入更复杂的内容 Jenkins 在 Windows 2012 服务器上运行 Jenkins 版本是 1 650 我们使用的是 Job DSL 插件版本
  • requests.get 返回 403,而相同的 url 在浏览器中有效

    我正在尝试使用搜索表单俄罗斯网 http www rlsnet ru 这是我从源文件中提取的表单定义
  • 所有 Haskell 函子都是内函子吗?

    我有点困惑 需要有人来纠正我 让我们概述一下我目前的理解 Where E是一个内函子 并且A是某个类别 E A gt A 由于 Haskell 中的所有类型和态射都在Hask类别 不是任何functor在 Haskell 中还有一个内函子
  • Android jetpack 编写没有 xml 的片段

    晚安 我使用drawerContent和navigationIcon来创建菜单 但是我可以创建一个没有xml的Fragment 吗 在撰写喷气背包中 如果有人有任何参考资料 我将不胜感激 使用 Compose 您可以尝试不同的东西 您可以使
  • 使用 AppFabric 缓存在 MVC SessionState 中使用 WCF DataContract

    我有一个数据访问层 一个服务层和一个表示层 表示层是 ASP NET MVC2 RTM Web 服务层是 WCF 服务 都是 NET 3 5 SP1 问题是在服务中 返回的对象被标记为 DataContract 属性 Web 使用 AppF
  • 如何使用OpenGL和QT?

    我正在开发一个小项目 我需要使用 OpenGL QT 我在这两个方面都是新手 所以我需要一个很好的教程来说明如何彼此合作而不是单独合作 在 QT Creator 上运行 OpenGL 还是使用 QT Visual Studio Plug i
  • ScrollView 重叠工具栏

    我尝试使用 ScrollView 和 Toolbar 作为 LinearLayout 的唯一子级 但它们彼此重叠 搜索了一下 但没有找到任何有用的东西 知道如 何解决这个问题而不是给 ScrollView 提供填充 边距吗
  • 如何阻止读取 C++ stringstream 以等待数据

    因此 我一直试图弄清楚如何等待来自 C stringstream 的数据 例如 而不需要不断检查数据是否存在 这非常消耗 CPU 例如 我完全能够从串行设备读取数据 并在没有数据到达时锁定进程 但不幸的是我无法弄清楚如何使用 C 流来做到这
  • 两个数组到哈希组合中奇怪的乘法运算符行为

    我正在寻找一种将两个数组转换为单个散列的方法 我发现了这样的东西 a1 1 2 3 a2 A B C Hash a1 zip a2 flatten 我觉得这个语法有点奇怪 因为Hash a1 zip a2 会做完全相同的事情 但更重要的是
  • Nodejs PM2集群模式实现负载均衡

    使用 pm2 集群时 会出现一个非常严重的警告 提示您不应在生产中使用它 也不应用于负载平衡 请改用 nginx 不幸的是 这正是我计划使用 PM2 的方式 它真的不打算用于此目的还是只是还没有完全准备好 Nodejs集群 0 10 有很多
  • Emacs shell 模式 SSH 会话中的 Tab 补全

    我当前的 emacs 使用模式导致我打开了多个 shell 模式缓冲区 每个缓冲区都运行一个 ssh 会话 不过 我遇到了一个问题 当我尝试在远程会话中使用制表符补全文件名和其他内容时 shell 尝试使用本地计算机上可用的补全 而不是远程
  • R:将日期从字符转换为日期时间[重复]

    这个问题在这里已经有答案了 I have df date作为下面的字符类型 date 1 2016 04 10T12 21 25 4278624 2 2016 04 12T10 01 42 9573987 3 2016 04 12T10 0
  • 有没有办法在运行时停止/重新启动 ejb 3.1 自动计时器?

    我正在尝试使用一个简单的自动 EJB 计划 计时器 我的代码是这样的 Singleton Lock LockType READ public class Scheduler Schedule second 0 minute 20 hour