我在代码中使用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()  {

    }
}

我希望能够重新配置调度程序,而不必每次我决定需要调整调度表时都必须重新生成调度程序并将其上载到服务器。

我该怎么做呢?

最佳答案

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

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

关于jboss - 自定义Ejb计时器计划,而无需重建 war ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44459928/

10-13 03:29