このトピックに関する多くの回答を見てきましたが、まだ明確な解決策が見つかりません。
public class ProcessScheduler {
static {
Timer timer=new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
LogProcessorServiceImpl.processPageRequestsLogs();
}
}, 0, 120);
}
}
これを実行し、質の高いソリューションに満足するにはどうすればよいですか? 私のアプリケーションは (残念ながら) Spring に基づいており、コントローラーの 1 つでこのクラスを参照でき、おそらく動作することを知っています。しかし、それはばかげています。もっと良い方法があるはずです。EJB をサポートしていない Tomcat を使用しているため、タイマー アノテーションは機能しません。また、CRONをやりたくありません。このスケジューラ クラス内ですべてのメンテナンス タスクをスケジュールしたいと考えています。
サーブレット クラスは、web.xml (1) を介してロードできます。サーブレット以外のクラスで同様のことを行うことはできますか?