5

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

    }
}

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

我该怎么做呢?

4

1 回答 1

2

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

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

于 2017-06-12T17:24:29.373 回答