zoukankan      html  css  js  c++  java
  • DataCache 批量的好方法

    实例

    public class HbaseDataCache2Db {
        private static Logger LOG = LoggerFactory.getLogger(HbaseDataCache2Db.class);
        private static ThreadLocal<Map<String, List<Put>>> THREAD_DATA = new ThreadLocal<>();
    
        public static void cacheData(String key, Put put) {
            Map<String, List<Put>> cacheMap = THREAD_DATA.get();
            if (cacheMap == null) {
                cacheMap = new HashMap<>();
            }
            List<Put> tmp = cacheMap.get(key);
            if (tmp == null) {
                tmp = new ArrayList<>();
            }
            tmp.add(put);
            cacheMap.put(key, tmp);
            THREAD_DATA.set(cacheMap);
        }
    
        public static void flushData() {
            try {
                Map<String, List<Put>> cacheMap = THREAD_DATA.get();
                if (cacheMap == null) {
                    return;
                }
                for (String tableName : cacheMap.keySet()) {
                    HbaseUtil.putData(tableName, cacheMap.get(tableName));
                }
                cacheMap.clear();
                THREAD_DATA.set(cacheMap);
            } catch (Exception e) {
                LOG.error("Hbase 数据写入异常:", e);
            }
        }
    
    
        public static void cacheData(Map<String, List<Put>> cacheMap, String key, Put put) {
            List<Put> tmp = cacheMap.get(key);
            if (tmp == null) {
                tmp = new ArrayList<>();
            }
            tmp.add(put);
            cacheMap.put(key, tmp);
        }
    
        public static void flushData(Map<String, List<Put>> cacheMap) {
            try {
                for (String tableName : cacheMap.keySet()) {
                    HbaseUtil.putData(tableName, cacheMap.get(tableName));
                }
            } catch (Exception e) {
                LOG.error("Hbase 数据写入异常:", e);
            }
        }
    }

    采用了map k,v 的方法

    public class MysqlDataCache2Db {
        private static Logger LOG = LoggerFactory.getLogger(MysqlDataCache2Db.class);
        private static ThreadLocal<Map<String, List<Object>>> THREAD_DATA = new ThreadLocal<>();
        public static String KEY_WX = "wx_base_info";
        public static String KEY_WX_ARTICLE = "wx_article_info";
    
        public static void cacheData(String key, Object obj) {
            Map<String, List<Object>> cacheMap = THREAD_DATA.get();
            if (cacheMap == null) {
                cacheMap = new HashMap<>();
            }
            List<Object> tmp = cacheMap.get(key);
            if (tmp == null) {
                tmp = new ArrayList<>();
            }
            tmp.add(obj);
            cacheMap.put(key, tmp);
            THREAD_DATA.set(cacheMap);
        }
    
    
        public static void flushData() {
            try {
                Map<String, List<Object>> cacheMap = THREAD_DATA.get();
                if (cacheMap == null) {
                    return;
                }
                for (String tableName : cacheMap.keySet()) {
                    List<Object> tmpList = cacheMap.get(tableName);
                    SqlUtilBusiness.data2DB(tableName, tmpList);
                    String sql = "update " + tableName + " set deptCode=cityCode where deptCode='' OR deptCode is null";
                    SqlUtilBusiness.exceteSql(sql);
                }
                cacheMap.clear();
                THREAD_DATA.set(cacheMap);
            } catch (Exception e) {
                LOG.error("MYSQL 数据写入异常:", e);
            }
        }
    
       public static void cacheData(Map<String, List<Object>> cacheMap, String key, Object obj) {
            List<Object> tmp = cacheMap.get(key);
            if (tmp == null) {
                tmp = new ArrayList<>();
            }
            tmp.add(obj);
            cacheMap.put(key, tmp);
        }
    
        public static void flushData(Map<String, List<Object>> cacheMap) {
            try {
                for (String tableName : cacheMap.keySet()) {
                    List<Object> tmpList = cacheMap.get(tableName);
                    SqlUtilBusiness.data2DB(tableName, tmpList);
                    String sql = "update " + tableName + " set deptCode=cityCode where deptCode='' OR deptCode is null";
                    SqlUtilBusiness.exceteSql(sql);
                    cacheMap.clear();
                }
            } catch (Exception e) {
                LOG.error("MYSQL 数据写入异常:", e);
            }
        }
    }
    故乡明
  • 相关阅读:
    vue 项目界面绘制_stylus_iconfont_swiper
    react_结合 redux
    BOM 浏览器对象模型_当前窗口的浏览历史 history 对象
    BOM 浏览器对象模型_Storage 接口
    react_app 项目开发 (9)_数据可视化 ECharts
    react_app 项目开发 (8)_角色管理_用户管理----权限管理 ---- shouldComponentUpdate
    BOM 浏览器对象模型_同源限制
    面试题: 多个 await 处理,有一个失败,就算作失败
    react_app 项目开发 (7)_难点集合
    react_app 项目开发_遇到的坑
  • 原文地址:https://www.cnblogs.com/luweiweicode/p/15151573.html
Copyright © 2011-2022 走看看