队列信息
This commit is contained in:
99
application/api/controller/Queueinfo.php
Normal file
99
application/api/controller/Queueinfo.php
Normal file
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
namespace app\api\controller;
|
||||
use app\api\controller\Base;
|
||||
use think\console\Command;
|
||||
use think\console\Input;
|
||||
use think\console\Output;
|
||||
use think\Config;
|
||||
use think\Request;
|
||||
|
||||
class Queueinfo extends Base
|
||||
{
|
||||
|
||||
public function __construct(\think\Request $request = null) {
|
||||
|
||||
$this->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 '<pre>';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 '<pre>';var_dump($sQueueInfo,$sKey,$iNum);exit;
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user