maintain last active state for users
This commit is contained in:
+7
-2
@@ -116,8 +116,13 @@ def get_metas_db(flag='r', autocommit=True):
|
|||||||
|
|
||||||
def get_tags_db(flag='r', autocommit=True):
|
def get_tags_db(flag='r', autocommit=True):
|
||||||
assert flag in ['r', 'c']
|
assert flag in ['r', 'c']
|
||||||
ddb = CompressedSqliteDict(DICT_DB_FILE, tablename='tags', flag=flag, autocommit=autocommit)
|
tdb = CompressedSqliteDict(DICT_DB_FILE, tablename='tags', flag=flag, autocommit=autocommit)
|
||||||
return ddb
|
return tdb
|
||||||
|
|
||||||
|
def get_last_active_db(flag='r', autocommit=True):
|
||||||
|
assert flag in ['r', 'c']
|
||||||
|
ladb = SqliteDict(DICT_DB_FILE, tablename='last_active', flag=flag, autocommit=autocommit)
|
||||||
|
return ladb
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from flask import render_template
|
|||||||
from flask import g # global session-level object
|
from flask import g # global session-level object
|
||||||
from flask import session
|
from flask import session
|
||||||
|
|
||||||
from aslite.db import get_papers_db, get_metas_db, get_tags_db
|
from aslite.db import get_papers_db, get_metas_db, get_tags_db, get_last_active_db
|
||||||
from aslite.db import load_features
|
from aslite.db import load_features
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
@@ -65,6 +65,12 @@ def get_metas():
|
|||||||
def before_request():
|
def before_request():
|
||||||
g.user = session.get('user', None)
|
g.user = session.get('user', None)
|
||||||
|
|
||||||
|
# record activity on this user so we can reserve periodic
|
||||||
|
# recommendations heavy compute only for active users
|
||||||
|
if g.user:
|
||||||
|
with get_last_active_db(flag='c') as last_active_db:
|
||||||
|
last_active_db[g.user] = int(time.time())
|
||||||
|
|
||||||
@app.teardown_request
|
@app.teardown_request
|
||||||
def close_connection(error=None):
|
def close_connection(error=None):
|
||||||
# close any opened database connections
|
# close any opened database connections
|
||||||
|
|||||||
Reference in New Issue
Block a user