proxy = ''; parent::__construct($request); } // Redis队列展示 public function show() { $aParam = $this->request->post(); $config = \think\Config::get('queue'); $config['queue'] = empty($aParam['queue_name']) ? 'ArticleAiCreateContent' : $aParam['queue_name']; $redis = new \Redis(); $redis->connect($config['host'], $config['port']); if (!empty($config['password'])) { $redis->auth($config['password']); } $redis->select($config['select']); // 获取不同队列类型的任务数 $aQueue = empty($aParam['queue_name']) ? ['ArticleAiCreateContent','RecommendReviewer','RelatedArticle','ReviewerScore','RevisionReviewer','SendRelatedArticleEmail','SendReviewEmail','WechatDraft','WechatDraftPublish','WechatMaterial','WechatQueryStatus','createFieldForQueue','RecommendArticleField'] : [$aParam['queue_name']]; foreach ($aQueue as $key => $value) { $types[$value] = [ 'pending' => 'queues:'.$value, 'delayed' => 'queues:'.$value.':delayed', 'failed' => 'queues:'.$value.':failed', 'reserved' => 'queues:'.$value.':reserved', ]; } $counts = []; foreach ($types as $k => $value) { foreach ($value as $type => $key) { if($type == 'pending'){ $counts[$k][$key] = $redis->lrange($key,0,-1); }else{ $counts[$k][$key] = $redis->zRange($key,0,-1); } } } // 关闭 Redis 连接(关键步骤) $redis->close(); echo '
';var_dump($counts);
    }
    public function removeKey() {

        $aParam = $this->request->post();
        $config = \think\Config::get('queue');

        $config['queue'] = empty($aParam['queue_name']) ? '' : $aParam['queue_name'];
        if(empty($config['queue'])){
            exit('非法操作');
        }
        $redis = new \Redis();
        $redis->connect($config['host'], $config['port']);
        
        if (!empty($config['password'])) {
            $redis->auth($config['password']);
        }
        
        $redis->select($config['select']);
        
        // 获取不同队列类型的任务数
        $aQueue = empty($aParam['queue_name']) ? ['ArticleAiCreateContent','WechatMaterial','WechatDraft','WechatQueryStatus'] : [$aParam['queue_name']];
        foreach ($aQueue as $key => $value) {
            $types[$value] = [
                'pending'  => 'queues:'.$value,
                'delayed'  => 'queues:'.$value.':delayed',
                'failed'   => 'queues:'.$value.':failed',
                'reserved' => 'queues:'.$value.':reserved',
            ];
        }   
        $counts = [];
        foreach ($types as $k => $value) {
            foreach ($value as $type => $key) {
                if($type == 'pending'){
                    $counts[$k][$key] = $redis->lrange($key,0,-1);
                }else{
                    $counts[$k][$key] = $redis->zRange($key,0,-1);
                }
                if ($redis->exists($key)) {
                    $redis->del($key);
                    var_dump("已删除队列键:{$key}");exit();
                }
            } 
            
        }
    // 关闭 Redis 连接(关键步骤)
        $redis->close();
echo '
';var_dump($counts);
    }
    // Redis值删除
    public function remove() {

        $aParam = $this->request->post();
        $config = \think\Config::get('queue');

        $sQueueName = empty($aParam['queue_name']) ? 'ArticleAiCreateContent' : $aParam['queue_name'];
        $redis = new \Redis();
        $redis->connect($config['host'], $config['port']);
        
        if (!empty($config['password'])) {
            $redis->auth($config['password']);
        }
        
        $redis->select($config['select']);
        

        $sQueueType = empty($aParam['queue_type']) ? '' : $aParam['queue_type'];
        $iNum =  empty($aParam['queue_num']) ? 0 : $aParam['queue_num'];
        if(empty($iNum) || empty($sQueueType)){
            echo '非法操作';
            exit;
        }
        // 获取不同队列类型的任务数
        $sKey  = 'queues:'.$sQueueName;
        if(!empty($sQueueType)){
            $sKey .= ':'.$sQueueType;
        }
        $counts = [];
        if($sQueueType == 'pending'){
            $sQueueInfo = $redis->LINDEX($sKey,$iNum);
        }else{
            $sQueueInfo = $redis->ZRANGE($sKey,0,-1);
        }

        if(!empty($sQueueInfo)){
            
        }

echo '
';var_dump($sQueueInfo,$sKey,$iNum);exit;
        // 关闭 Redis 连接(关键步骤)
        $redis->close();
    }


    public function getKey(){

        $aParam = $this->request->post();
        if(empty($aParam['key_name'])){
            exit('非法操作');
        }

        $config = \think\Config::get('queue');

        $sQueueName = empty($aParam['queue_name']) ? 'ArticleAiCreateContent' : $aParam['queue_name'];
        $redis = new \Redis();
        $redis->connect($config['host'], $config['port']);
        
        if (!empty($config['password'])) {
            $redis->auth($config['password']);
        }
        
        $redis->select($config['select']);

        $sKey = $redis->hGetAll($aParam['key_name']);
        echo '我是HgetAll';
        var_dump($sKey);

        $sKey = $redis->get($aParam['key_name']);
        var_dump($sKey);
        // 关闭 Redis 连接(关键步骤)
        $redis->close();
    }

    public function removeKey1(){

        // 获取请求参数
        $aParam = $this->request->post();
        if (empty($aParam['key_name'])) {
            exit('非法操作');
        }

        // 获取队列配置(Redis 配置)
        $config = \think\Config::get('queue');

        // 队列名称默认值处理
        $sQueueName = empty($aParam['queue_name']) ? 'ArticleAiCreateContent' : $aParam['queue_name'];

        // 初始化 Redis 连接
        $redis = new \Redis();
        // 连接 Redis 服务器
        $redis->connect($config['host'], $config['port']);

        // 若有密码则认证
        if (!empty($config['password'])) {
            $redis->auth($config['password']);
        }

        // 选择数据库(默认 0)
        $redis->select($config['select']);

        // 操作示例:获取哈希表数据
        echo '我是HgetAll';
        $sKey = $redis->hGetAll($aParam['key_name']);
        var_dump($sKey);

        // 删除哈希表
        $result = $redis->del($aParam['key_name']);
        var_dump($result);

        // 尝试获取字符串类型的键(验证是否删除)
        echo '我是get';
        $sKey = $redis->get($aParam['key_name']);
        var_dump($sKey);

        // 再次删除(确保删除)
        $result = $redis->del($aParam['key_name']);
        var_dump($result);

        // 关闭 Redis 连接(关键步骤)
        $redis->close();
    }
}