自定义Ejb计时器计划而不重建战争

Baz*_*Baz 5 jboss ejb jboss-eap-7

我在我的代码中使用了一个ejb计时器,如下所示:

import org.apache.logging.log4j.Logger;
import javax.annotation.Resource;
import javax.ejb.Schedule;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.inject.Inject;

@Singleton
@Startup
public class Notifier {

    @Inject
    Logger LOG;

    @Resource(mappedName="java:jboss/mail/Default")
    private Session mailSession;

    @Schedule(minute = "0", hour = "*", persistent = false)
    public void notify()  {

    }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够重新配置调度程序,而无需每次我决定需要调整计划时重建并将生成的战争上传到服务器.

我该怎么做呢?

Jam*_*ins 2

您可以使用系统属性和ScheduleExpression. 或者您可以使用编程 EJB Timer

另一种选择是使用 aManagedScheduledExecutorService并使用 aTrigger来控制下一次运行时间。同样,您可以使用系统属性或仅使用应用程序外部的配置文件。