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

时间:2017-06-09 14:07:39

标签: 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()  {

    }
}

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

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用系统属性和ScheduleExpression。或者您可以使用programmatic EJB Timer

另一种选择是使用ManagedScheduledExecutorService并使用Trigger来控制下一个运行时间。您可以再次使用系统属性或仅使用位于应用程序之外的配置文件。