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;
+
+ }
+}