package dk.thoerup.traininfoservice; import java.util.Timer; import java.util.TimerTask; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class StatisticsListener implements ServletContextListener { Timer timer = null; int update_interval; public void contextInitialized(ServletContextEvent sce) { update_interval = getUpdateInterval( sce.getServletContext() ); if ( update_interval > 0 ) { timer = new Timer(); TimerTask statsUpdate = new TimerTask() { @Override public void run() { Statistics.getInstance().saveStats(); } }; timer.schedule(statsUpdate, 0, update_interval); } } public void contextDestroyed(ServletContextEvent sce) { if ( update_interval > 0 ) { timer.cancel(); } } private int getUpdateInterval(ServletContext cntx) { int interval = 0; try { String intervalStr = cntx.getInitParameter("stats_interval"); interval = Integer.parseInt(intervalStr); } catch (Exception e) {} return interval; } }