diff --git a/application/api/controller/Queueinfo.php b/application/api/controller/Queueinfo.php new file mode 100644 index 0000000..dd079f5 --- /dev/null +++ b/application/api/controller/Queueinfo.php @@ -0,0 +1,99 @@ +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 = ['ArticleAiCreateContent','WechatMaterial','WechatDraft','WechatQueryStatus']; + 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); + } + } + } +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;
+
+    }
+}