即使服务器完全启动并且正在运行,我该如何启动方法?
目前我正在实现文件监视器。
我想从服务器启动文件观察器。
但是由于我的方法中的while()
循环,服务器将无法启动并进入超时状态。因此,我想在服务器和我的Web应用程序部署成功后立即启动FileWatcher。
@Startup
@Singleton
public class FileWatcher {
@PostConstruct
public void init() {
System.out.println("Init file Watcher ");
try {
doStartFileWatcher();
} catch (Exception e) {
}
}
}
我该如何解决这个问题?
答案 0 :(得分:0)
猜测,您正在为FileWatcher类定期运行某些内容。如何改变:
@Startup
@Singleton
public class FileWatcher {
@Schedule(hour = "*", minute = "*",persistent = false)
private void runFileWatcher() {
}
}
runFileWatcher方法现在将在0秒(即上午10:08:00)每分钟运行一次。这会更好吗?
答案 1 :(得分:0)
也许你应该使用JDK WatchService API:https://docs.oracle.com/javase/tutorial/essential/io/notification.html