示例#1
0
class YyUrUser(object):
    def __init__(self):
        self.hbase_con = HbaseInfoTask()
        self.redis_con = RedisYyTools()
        self.es = Elasticsearch(ES_ADDR)

    def es_ping(self):
        if not self.es.ping():
            self.es = Elasticsearch(ES_ADDR)

    def run(self):
        while True:
            rowkey = self.redis_con.get_yy_rowkey("es:ur:insert:info")
            map = self.hbase_con.getYyResultByRowkey("UR_USER_TABLE", rowkey)
            self.es_ping()
            self.es.index("ur_follow", doc_type="sino", id=rowkey, body=map)
示例#2
0
class YyDelInInfo(object):
    def __init__(self):
        self.hbase_con = HbaseInfoTask()
        self.redis_con = RedisYyTools()
        self.es = Elasticsearch(ES_ADDR)

    def es_ping(self):
        if not self.es.ping():
            self.es = Elasticsearch(ES_ADDR)

    def run(self):
        while True:
            rowkey = self.redis_con.get_yy_rowkey("es:in:del:info")
            self.es_ping()
            try:
                self.es.delete("in_follow", doc_type="sino", id=rowkey)
            except Exception as e:
                log_info = "rowkey : %s", str(e)
                logging.warning(log_info)
示例#3
0
 def __init__(self):
     self.hbase_con = HbaseInfoTask()
     self.redis_con = RedisYyTools()
     self.es = Elasticsearch(ES_ADDR)
示例#4
0
class SystemInsertInfo(object):
    def __init__(self):
        self.hbase_con = HbaseLogInfoTask()
        self.redis_con = RedisYyTools()
        self.es = Elasticsearch(ES_LOG_ADDR)

    def es_ping(self):
        if not self.es.ping():
            self.es = Elasticsearch(ES_LOG_ADDR, timeout=30)

    def run(self):
        action_list = []
        count = 0
        start = int(time.time())
        cunzai = 0
        while True:
            rowkey = self.redis_con.get_yy_nb_rowkey("es:system:insert:info")
            if rowkey == None:
                if len(action_list) > 0:
                    logging.warning("重复存入elasticsearch当中%d条数据" % cunzai)
                    cunzai = 0
                    self.commit(action_list)
                    action_list.clear()
                    start = int(time.time())
                    count = 0
                time.sleep(5)
                continue
            if len(rowkey) > 500:
                log_info = "id:%s长度超过500" % rowkey
                logging.warning(log_info)
                continue
            boo = self.es.exists("system_info", "sino", rowkey)
            if boo:
                cunzai = cunzai + 1
                map = self.hbase_con.getResultByRowkey("system_info", rowkey)
                if not map:
                    continue
                action_list.append({
                    "_op_type": "update",
                    "_index": "system_info",
                    "_type": "sino",
                    "_id": rowkey,
                    "doc": map,
                })
            else:
                map = self.hbase_con.getResultByRowkey("system_info", rowkey)
                if not map:
                    continue
                action_list.append({
                    "_index": "system_info",
                    "_type": "sino",
                    "_id": rowkey,
                    "_source": map,
                })
            end = int(time.time())
            count = count + 1
            if count > COUNT_NUM or (end - start) > 30:
                self.es_ping()
                logging.warning("重复存入elasticsearch当中%d条数据" % cunzai)
                cunzai = 0
                if len(action_list) > 0:
                    self.commit(action_list)
                start = int(time.time())
                action_list.clear()
                count = 0

    def commit(self, action_list):
        try:
            helpers.bulk(self.es, action_list)
        except Exception as e:
            log_info = "index:system_info,\terror:" + str(e)
            logging.error(log_info)
            helpers.bulk(self.es, action_list)
        logging.warning("提交成功:%d条数据" % len(action_list))