Java Ejb Schedule 未被触发

问题描述 投票:0回答:2

我有一个 @Schedule 方法,我正在尝试调试,但没有被触发:

@Singleton
public class FileScheduler {

    @EJB
    private DaoFactory daoFactory;

    @Schedule(persistent = false, minute = "1")
    public void FilesSubmited() throws EmailException {
        System.out.println("Init");
      
    }

计划未激活的原因可能是什么?

java schedule
2个回答
0
投票

您可能需要@Startup。如果您希望它每分钟运行一次,则表达式应为

"*/1"
有关表达式的更多信息):

@Startup
@Singleton
public class FileScheduler {

    @EJB
    private DaoFactory daoFactory;

    @Schedule(persistent = false, minute = "*/1")
    public void FilesSubmited() throws EmailException {
        System.out.println("Init");
      
    }
}

如果单例使用

@Startup
注释进行注释,则 EJB 容器会在应用程序部署时启动单例会话 bean。


0
投票

当我们将旧项目迁移到 Wildfly 27+ 上运行时,我遇到了这个问题。结果我们将所有 javax.* 命名空间迁移到 Jakarta EE 10,但没有删除 javax.javaee-api 库,也没有更改 @Startup/@Schedule 注释的导入。导入仍在工作并且可以构建项目,但 Wildfly 27+ 选择默默地忽略预定的方法而不给出任何提示。确保您使用 jakarta.ejb-api。

© www.soinside.com 2019 - 2024. All rights reserved.