嘿嘿,表示很高兴。今天终于把单位里最简单的一个任务花了九牛二虎之力给完成了。额,其实也不是本职工作,可以说是多管“闲”事。要多谢ET老师指点说加个cache,才让本蛙又见了点世面。还有沛东同学不懈努力的帮我发布调试。。。发布这个环节坑真的有点多,不考虑改改me。。。
加个cache是想缩短线上读取服务端数据库数据的时间:
from pymongo import MongoClient
import datetime
from datetime import datetime, timedelta
class XXX:
def __init__(self, mongo_url, db):
self._mongo_url = mongo_url
self._db = db
self._mongo = None
self._ins_cache = None
self._ins_cache_expire_dt = None
def _get_db(self):
if self._mongo:
return self._mongo
from .mongo_manager import MONGO_MANAGER
mongo = MONGO_MANAGER[self._mongo_url]
self._mongo = mongo.get_database(self._db).get_collection('concept')
return self._mongo
def _load_concept_list(self):
self._ins_cache = {}
self._ins_cache = self._get_db().distinct('concept_name')
self._ins_cache_expire_dt = datetime.now() + timedelta(minutes=30)
@property
def _concept_list(self):
if self._ins_cache is None:
self._load_concept_list()
else:
now = datetime.now()
if self._ins_cache_expire_dt > now:
self._load_concept_list()
return self._ins_cache
def concept_list(self):
query_result = self._concept_list
return [q for q in query_result]