import json

import redis



class XNGSyncRedisHelper:
    _pool: redis.ConnectionPool = None
    _instance = None

    def __init__(self):
        if not self._instance:
            self._pool = self._get_pool()
            self._instance = self

    def _get_pool(self) -> redis.ConnectionPool:
        if self._pool is None:
            self._pool = redis.ConnectionPool(
                # host="r-bp1mb0v08fqi4hjffupd.redis.rds.aliyuncs.com",  # 外网地址
                host="r-bp1mb0v08fqi4hjffu.redis.rds.aliyuncs.com",  # 内网地址
                port=6379,
                db=0,
                password="Wqsd@2019",
                # password="Qingqu2019",

            )
        return self._pool

    def get_client(self) -> redis.Redis:
        pool = self._get_pool()
        client = redis.Redis(connection_pool=pool)
        return client

    def close(self):
        if self._pool:
            self._pool.disconnect(inuse_connections=True)




def xng_get_video_data():
    """获取一条id"""
    task = f"task:xng_video_id"
    helper = XNGSyncRedisHelper()
    client = helper.get_client()
    ret = client.rpop(task)
    return ret

def xng_in_video_data(ret):
    """写入"""
    task = f"task:xng_video_id"
    helper = XNGSyncRedisHelper()
    client = helper.get_client()
    client.rpush(task, ret)