我在我的代码中使用了一个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() {
}
}
我希望能够重新配置调度程序,而无需每次我决定需要调整计划时重建并将生成的战争上传到服务器。
我该怎么做?
答案 0 :(得分:2)
您可以使用系统属性和ScheduleExpression
。或者您可以使用programmatic EJB Timer。
另一种选择是使用ManagedScheduledExecutorService
并使用Trigger
来控制下一个运行时间。您可以再次使用系统属性或仅使用位于应用程序之外的配置文件。