Rebuild tables for queries
[proteocache.git] / server / compbio / listeners / ContextListener.java
index 5b05a8b..a1ff9cb 100644 (file)
@@ -29,11 +29,13 @@ import compbio.util.Util;
 public class ContextListener implements ServletContextListener {
        private ScheduledExecutorService webjob_scheduler;
        private ScheduledExecutorService localjob_scheduler;
+       private ScheduledExecutorService update_scheduler;
        CassandraNativeConnector db = new CassandraNativeConnector();
        static PropertyHelper ph = ProteoCachePropertyHelperManager.getPropertyHelper();
        private static Logger log = Logger.getLogger(ContextListener.class);
        public static boolean READ_WEB_JPRED = false;
        public static boolean READ_LOCALFILE_JPRED = false;
+       public static boolean FILL_NEWTABLE = false;
 
        private static boolean initBooleanValue(String key) {
                assert key != null;
@@ -52,13 +54,21 @@ public class ContextListener implements ServletContextListener {
                System.out.println("ProteoCache session start......");
                // connect to the db and create table if needed
                db.Connect();
-               CassandraNewTableWriter updater = new CassandraNewTableWriter();
-
-               // updater.FillParameters();
-               // updater.FillNewTable();
+               final CassandraNewTableWriter updater = new CassandraNewTableWriter();
 
                READ_WEB_JPRED = initBooleanValue("cassandra.jpred.web.update");
                READ_LOCALFILE_JPRED = initBooleanValue("cassandra.jpred.local.update");
+               FILL_NEWTABLE = initBooleanValue("cassandra.newtables.update");
+
+               if (FILL_NEWTABLE) {
+                       update_scheduler = Executors.newSingleThreadScheduledExecutor();
+                       update_scheduler.schedule(new Runnable() {
+                               @Override
+                               public void run() {
+                                       updater.FillNewTable();
+                               }
+                       }, 10, TimeUnit.SECONDS);
+               }
 
                if (READ_WEB_JPRED) {
                        // get data from real Jpred production server
@@ -161,6 +171,7 @@ public class ContextListener implements ServletContextListener {
                if (READ_LOCALFILE_JPRED) {
                        localjob_scheduler.shutdownNow();
                }
+               update_scheduler.shutdownNow();
        }
 
 }