我已经看到很多关于这个主题的答案,但仍然找不到一个干净的解决方案。
public class ProcessScheduler {
static {
Timer timer=new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
LogProcessorServiceImpl.processPageRequestsLogs();
}
}, 0, 120);
}
}
如何执行此操作并对质量解决方案感到满意?我的应用程序基于Spring(不幸的是),我知道我可以在我的一个控制器中引用这个类,它可能会工作。但那太傻了。必须有一个更好的方法。我在Tomcat上没有EJB支持,因此定时器注释对我不起作用。另外,我不想做CRON。我想在此调度程序类中安排所有维护任务。
可以通过web.xml(1)加载Servlet类。我们可以在非servlet类上做类似的事情吗?
答案 0 :(得分:5)
而不是在静态块中写这个,我宁愿
javax.servlet.ServletContextListener
方法contextInitialized
方法在我的应用程序的<listener>
文件中将类配置为web.xml
。
<listener>
<listener-class>
com.vikdor.webapps.ProcessSchedulerListener
</listener-class>
</listener>