示例#1
0
 def test_db_feature_hot_item_list(self):
     feature_names = ['novlf1','novlf2','novlf3','novl香港']
     prefer_res = {}
     for feature_name in feature_names:
         prefer_res[feature_name] = 'data_%s' % feature_name
         self.assertEqual( True, db_models_update.set_db_offline_feature_hot_item_list(feature_name, DataDef.get_resource_type_from_feature_name(feature_name), prefer_res[feature_name]))
     res = db_models.get_db_offline_feature_hot_item_list(feature_names)
     #print 'prefer_res:%s' % prefer_res
     #print 'real_res:%s' % res[1]
     self.assertEqual(True, res[0])
     self.assertEqual(prefer_res, res[1])
示例#2
0
def get_offline_feature_hot_item_list(feature_names):
    #logger.debug('get_offline_feature_hot_item_list, feature_names: %s' % feature_names)
    cache_errorCode, cache_res = cache_models.get_cache_offline_feature_hot_item_list(feature_names)
    return_none_keys = get_return_none_keys(cache_res, feature_names)
    db_errorCode = True
    db_res = {}
    if len(return_none_keys) > 0:
        logger.warning('get_offline_feature_hot_item_list, cache has return none key: %s' % return_none_keys)
        db_errorCode, db_res = db_models.get_db_offline_feature_hot_item_list(return_none_keys)
        #logger.debug('db_Code: %s, db_res:%s' % (db_errorCode, db_res))
        for key , data in db_res.items():
            cache_models.set_cache_offline_feature_hot_item_list(key, data)
            logger.debug('get_offline_feature_hot_item_list, set cache feature_names[%s]' % key)
        if True == db_errorCode:
            for key in [x for x in return_none_keys if x not in db_res.keys()]:
                cache_models.set_cache_offline_feature_hot_item_list(key, DataDef.CACHE_DEFAULT_NONE_VALUE, DataDef.CACHE_NONE_EXPIRE_SECONDS)
                logger.debug('get_offline_feature_hot_item_list, set cache item_id[%s] None Value' % key)
    return (cache_errorCode and db_errorCode, merge_db_cache_result(cache_res, db_res))