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();
}
}