about summary refs log tree commit diff
diff options
context:
space:
mode:
authorZachary Sloan2013-06-26 21:48:44 +0000
committerZachary Sloan2013-06-26 21:48:44 +0000
commit9718fc35ac90640f9ff1324af077c99fe43c4900 (patch)
tree6495fd4265033337c33ef6f7956f8741f106fd0e
parent6fbbfe5e8bcc3b57c4177687bbf67bf041da3cba (diff)
downloadgenenetwork2-9718fc35ac90640f9ff1324af077c99fe43c4900.tar.gz
Moved code creating DataSets object to a function in dataset.py
Added caching to creating DataSets object
-rwxr-xr-xwqflask/base/data_set.py17
-rw-r--r--wqflask/wqflask/views.py17
2 files changed, 30 insertions, 4 deletions
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index e4bdb5c3..803cbc4f 100755
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -27,8 +27,12 @@ import string
 import collections
 
 import json
+import cPickle as pickle
 import itertools
 
+from redis import Redis
+Redis = Redis()
+
 from flask import Flask, g
 
 import reaper
@@ -70,6 +74,19 @@ def create_dataset(dataset_name, dataset_type = None):
     dataset_class = globals()[dataset_ob]
     return dataset_class(dataset_name)
 
+def create_datasets_list():
+    key = "all_datasets"
+    result = Redis.get(key)
+    if result:
+        print("Cache hit!!!")
+        result = pickle.loads(result)
+    else:
+        with Bench("Creating DataSets object"):
+            ds = DataSets()
+        Redis.set(key, pickle.dumps(result))
+        Redis.expire(key, 2*60)
+
+
 def create_in_clause(items):
     """Create an in clause for mysql"""
     in_clause = ', '.join("'{}'".format(x) for x in mescape(*items))
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index e48506ab..603ff49b 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -27,7 +27,7 @@ from flask import render_template, request, make_response, Response, Flask, g, c
 
 from wqflask import search_results
 from base.data_set import DataSet    # Used by YAML in marker_regression
-from base.data_set import DataSets 
+from base.data_set import create_datasets_list
 from wqflask.show_trait import show_trait
 from wqflask.show_trait import export_trait_data
 from wqflask.marker_regression import marker_regression
@@ -54,9 +54,18 @@ def connect_db():
 @app.route("/")
 def index_page():
     print("Sending index_page")
-    with Bench("Creating DataSets object"):
-        ds = DataSets()
-    print("[orange] ds:", ds.datasets)
+    create_datasets_list()
+    #key = "all_datasets"
+    #result = Redis.get(key)
+    #if result:
+    #    print("Cache hit!!!")
+    #    result = pickle.loads(result)
+    #else:
+    #    with Bench("Creating DataSets object"):
+    #        ds = DataSets()
+    #    Redis.set(key, pickle.dumps(result))
+    #    Redis.expire(key, 2*60)
+    #print("[orange] ds:", ds.datasets)
     return render_template("index_page.html")
 
 @app.route("/data_sharing")