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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1030 - (hide annotations) (download)
Wed Sep 8 08:11:00 2010 UTC (13 years, 8 months ago) by torben
File size: 1943 byte(s)
Only cancel the timer if it actually was created
1 torben 811 package dk.thoerup.traininfoservice;
2    
3     import java.util.Timer;
4     import java.util.TimerTask;
5 torben 816 import java.util.logging.Logger;
6 torben 811
7     import javax.servlet.ServletContext;
8     import javax.servlet.ServletContextEvent;
9     import javax.servlet.ServletContextListener;
10 torben 959 import javax.servlet.annotation.WebListener;
11 torben 811
12 torben 959 @WebListener
13 torben 811 public class StatisticsListener implements ServletContextListener {
14 torben 816
15     Logger log = Logger.getLogger(StatisticsListener.class.getName());
16 torben 811
17     Timer timer = null;
18     int update_interval;
19    
20     public void contextInitialized(ServletContextEvent sce) {
21    
22     update_interval = getUpdateInterval( sce.getServletContext() );
23 torben 816
24    
25 torben 1023
26 torben 1022 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 torben 1023 log.info("This is not a prod. server, dont start Statistics saver");
29 torben 1022 return;
30     }
31    
32 torben 1023
33    
34 torben 811 if ( update_interval > 0 ) {
35 torben 1023 log.info("Statistics saver started with update_interval=" + update_interval);
36 torben 811 timer = new Timer();
37    
38     TimerTask statsUpdate = new TimerTask() {
39     @Override
40     public void run() {
41     Statistics.getInstance().saveStats();
42     }
43     };
44    
45     timer.schedule(statsUpdate, 0, update_interval);
46 torben 1023 } else {
47     log.info("Statistics saver disabled (update_interval == 0) ");
48 torben 811 }
49     }
50    
51    
52     public void contextDestroyed(ServletContextEvent sce) {
53 torben 816 log.info("StatisticsListener::contextDestroyed");
54 torben 1030 if ( timer != null ) {
55 torben 811 timer.cancel();
56 torben 814 Statistics.getInstance().saveStats();
57 torben 811 }
58     }
59    
60     private int getUpdateInterval(ServletContext cntx) {
61     int interval = 0;
62     try {
63     String intervalStr = cntx.getInitParameter("stats_interval");
64     interval = Integer.parseInt(intervalStr);
65     } catch (Exception e) {}
66    
67     return interval;
68     }
69     }

  ViewVC Help
Powered by ViewVC 1.1.20