def reloadDataSource(): ''' 加载数据库中的P_AT_DATASOURCE表保存的数据源,只支持jdbc:oracle:thin:@127.0.0.1:1521:orcl,stu,stu格式的数据库链接串 @return: ''' dbmap = db.querySQL2map("select DATAID,DATAURL from P_AT_DATASOURCE") if len(dbmap) == 0: return rs = {} for item in dbmap: url = item["DATAURL"] if url.find("jdbc:oracle:thin") != -1: # jdbc:oracle:thin:@127.0.0.1:1521:orcl,stu,stu us = url.split(",") if len(us) != 3: continue r = {"USER": us[1], "PASSWORD": us[2]} i = us[0].find("@") if i == -1: continue s = us[0][-1 * (len(us[0]) - us[0].find("@") - 1):] ss = s.split(":") if len(ss) != 3: continue r["HOST"] = ss[0] r["PORT"] = ss[1] r["NAME"] = ss[2] rs[item["DATAID"]] = r redistip.put2redis("P_AT_DATASOURCE", rs) for key in rs: redistip.put2redis("P_AT_DATASOURCE_%s" % key, rs[key]) settings.DATABASES[key] = rs[key]
def reloadAppkey(cur): """ 重新加载appkey回调句柄 :param cur: :return: """ preKey = "APPKEY_" ks = GLOBAREDIS.keys(preKey + "*") field = ['app_id', 'publickey', 'privatekey', 'uname', 'pwd'] appkeys = [] for item in cur.fetchall(): d = dict(zip(field, item)) srvs = [] for srv in appsrv: if srv["APP_ID"] == d['app_id']: srvs.append(srv["SERVICE_ID"]) d["services"] = srvs key = preKey + d['app_id'] redistip.put2redis(key, d) if key in ks: ks.remove(key) appkeys.append(key) if settings.DEBUG: settings.infoLogger.info("add app data,appkey:%s" % (preKey + d['app_id'])) for k in ks: GLOBAREDIS.delete(k)
def reloadplant(cur): field = [ 'platid', 'area', 'contacts', 'pluguel', 'sysusername', 'syspwd' ] for item in cur.fetchall(): redistip.put2redis("PC_" + item[4], dict(zip(field, item))) if settings.DEBUG: settings.infoLogger.info("add plantfrom,key:%s" % ("PC_" + item[4]))
def reloadcloudSrv(cur): field = [ "SERVICEID", "TYPE", "SERVICENAME", "URL", "ENABLED", "CACHETYPE", "SECRET", "MSGLOG", "NOTE", "SERVICETYPE", "ORIGIALURL", "META", "ORIGIALSECURITY", "PLANTID" ] for item in cur.fetchall(): redistip.put2redis("SC_" + str(item[0]), dict(zip(field, item))) if settings.DEBUG: settings.infoLogger.info("add cloud service,key:%s" % ("PC_" + str(item[0])))
def reloadservice(cur): field = [ 'serviceid', 'type', 'servicename', 'url', 'enabled', 'cachetype', 'origialurl', 'namespace', 'secret', 'msglog' ] for item in cur.fetchall(): d = dict(zip(field, item)) redistip.put2redis("SRV_URL_" + d["url"], d) if ("SRV_URL_" + d["url"]).encode(encoding="utf-8") in keys: keys.remove(("SRV_URL_" + d["url"]).encode(encoding="utf-8")) if settings.DEBUG: settings.infoLogger.info("app ws service,key:%s" % ("SRV_URL_" + d["url"]))
def _reloadCacheData(): ks = GLOBAREDIS.keys("CACHE_*") for k in ks: GLOBAREDIS.delete(k) for item in settings.CACHE_TABLES: key = "CACHE_" + item[3] + "_" data = db.querySQL2map(item[0], None, item[1]) for d in data: k = key + '_'.join(map(lambda x: d[x], item[2])) if (item[4] is None) or (len(item[4]) == 0): redistip.put2redis(k, d) elif len(item[4]) == 1: redistip.putStr2redis(k, d[item[4][0]]) else: redistip.put2redis(k, dict([[r, d[r]] for r in item[4]]))