Java EE @Schedule和服务器宕机

3
我在Java EE 8中有以下任务,运行在WildFly上。
public class MyScheduler {

    @Schedules({
            @Schedule(dayOfWeek = "Fri", hour = "17")
    })
    public void performCronTask() {
        System.out.println("MyScheduler started.");
    }
}

这将在每个星期五的17点运行(下午5点)。如果服务器在16点崩溃并在18点重新启动,会发生什么?服务器是否会执行任务?我是否需要通过编程控制此情况?

1个回答

2

是的,它将会被执行。根据EJB 3.1规范,@Schedule注解包含一个属性,用于定义调度器是否持久化。默认情况下,调度器是持久化的。这里有一篇文章详细介绍如何配置基于编程和注解的调度器 https://www.baeldung.com/scheduling-in-java-enterprise-edition


如果@Schedule中的时间是通过编程设置而不是硬编码设置的,会怎样呢? - ps0604
无论您是通过编程方式还是通过注释来初始化调度程序,只要它是持久的,就不应该有任何区别。这里有一篇关于这两种方法的好文章 - 编程和注释 https://www.baeldung.com/scheduling-in-java-enterprise-edition - Alexander Petrov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接