gpt4 book ai didi

java - 如何使用Java中的定时器来运行Job指定的时间?

转载 作者:行者123 更新时间:2023-12-01 07:37:40 26 4
gpt4 key购买 nike

我正在开发一个 Web 应用程序,我需要运行一个线程 60 秒,需要检查来自 Web 服务的响应。如果响应在 60 秒内到达,我将转发到成功,否则我将在 60 秒后转发到超时页面。我使用的是 JSF 2.0?我想过使用计时器,但不确定何时可以仅运行计时器特定的时间。

有什么聪明的解决方案吗??

最佳答案

是的,您可以创建一个计时器,该计时器在一定时间后到期。请参阅此链接http://docs.oracle.com/javaee/1.4/api/javax/ejb/TimerService.html .

Java < 版本。 6

  1. 创建 session Bean 或消息驱动 Bean
  2. 注入(inject)TimerService

    @Ressource
    TimerService ts;
  3. 创建计时器

    ...
    // create Timer which starts after 10s every 10s
    Timer timer = ts.createTimer(10000, 10000, "Test-Timer");
    ...

    重要提示:计时器间隔必须 >7 秒,请参阅 Java 规范

  4. 创建定时器触发时执行的方法

    @Timeout //marks Method to be executed by Timer
    public void timerFired(Timer timer) {
    // your code here
    }

Java > 版本。 6

@Schedule-Annotation非常满意

    @Schedule(second="*/45", minute="*", hour="*", persistent="false")
public void scheduler() {
// your code here
}

上面的代码实现了一个计时器,每小时每分钟每 45 秒触发一次。有关 cron 语法的更多信息,请参阅维基百科。

这两种方法都实现了Serialized接口(interface),因此它们都是线程安全的。

如果您想扩展这个基本功能,您应该看看 Quartz .

希望这有帮助!玩得开心!

关于java - 如何使用Java中的定时器来运行Job指定的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9618375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com