/[projects]/android/TrainInfoService/src/dk/thoerup/traininfoservice/StatisticsListener.java
ViewVC logotype

Diff of /android/TrainInfoService/src/dk/thoerup/traininfoservice/StatisticsListener.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 811 by torben, Wed Jun 9 20:16:01 2010 UTC revision 1030 by torben, Wed Sep 8 08:11:00 2010 UTC
# Line 2  package dk.thoerup.traininfoservice; Line 2  package dk.thoerup.traininfoservice;
2    
3  import java.util.Timer;  import java.util.Timer;
4  import java.util.TimerTask;  import java.util.TimerTask;
5    import java.util.logging.Logger;
6    
7  import javax.servlet.ServletContext;  import javax.servlet.ServletContext;
8  import javax.servlet.ServletContextEvent;  import javax.servlet.ServletContextEvent;
9  import javax.servlet.ServletContextListener;  import javax.servlet.ServletContextListener;
10    import javax.servlet.annotation.WebListener;
11    
12    @WebListener
13  public class StatisticsListener implements ServletContextListener {  public class StatisticsListener implements ServletContextListener {
14            
15            Logger log = Logger.getLogger(StatisticsListener.class.getName());
16    
17          Timer timer = null;          Timer timer = null;
18          int update_interval;          int update_interval;
# Line 16  public class StatisticsListener implemen Line 20  public class StatisticsListener implemen
20      public void contextInitialized(ServletContextEvent sce) {      public void contextInitialized(ServletContextEvent sce) {
21                    
22          update_interval = getUpdateInterval( sce.getServletContext() );          update_interval = getUpdateInterval( sce.getServletContext() );
23            
24            
25            
26            if (! sce.getServletContext().getRealPath("/").startsWith("/home/app/")  ) {
27                    //if path not starts with /home/app then it is not running on a production server and we only collects stats on prod servers
28                    log.info("This is not a prod. server, dont start Statistics saver");
29                    return;
30            }
31            
32            
33            
34          if ( update_interval > 0 ) {          if ( update_interval > 0 ) {
35                    log.info("Statistics saver started with update_interval=" + update_interval);
36                  timer =  new Timer();                  timer =  new Timer();
37                                    
38                  TimerTask statsUpdate = new TimerTask() {                  TimerTask statsUpdate = new TimerTask() {
# Line 27  public class StatisticsListener implemen Line 43  public class StatisticsListener implemen
43                  };                  };
44                                    
45                  timer.schedule(statsUpdate, 0, update_interval);                  timer.schedule(statsUpdate, 0, update_interval);
46            } else {
47                    log.info("Statistics saver disabled (update_interval == 0) ");
48          }          }
49      }      }
50    
51    
52      public void contextDestroyed(ServletContextEvent sce) {      public void contextDestroyed(ServletContextEvent sce) {
53          if ( update_interval > 0 ) {          log.info("StatisticsListener::contextDestroyed");
54            if ( timer != null ) {
55                  timer.cancel();                  timer.cancel();
56                    Statistics.getInstance().saveStats();
57          }          }
58      }      }
59    

Legend:
Removed from v.811  
changed lines
  Added in v.1030

  ViewVC Help
Powered by ViewVC 1.1.20