Files
cunkebao_v3/Server/application/command/WechatFriendCommand.php

64 lines
2.0 KiB
PHP
Raw Normal View History

2025-03-24 14:59:19 +08:00
<?php
2025-03-24 16:42:36 +08:00
namespace app\command;
2025-03-24 14:59:19 +08:00
use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\facade\Log;
use think\Queue;
2025-03-24 16:42:36 +08:00
use app\job\WechatFriendJob;
2025-04-11 16:15:48 +08:00
use think\facade\Cache;
2025-03-24 14:59:19 +08:00
2025-03-24 16:42:36 +08:00
class WechatFriendCommand extends Command
2025-03-24 14:59:19 +08:00
{
protected function configure()
{
2025-03-24 16:42:36 +08:00
$this->setName('wechatFriends:list')
->setDescription('获微信列表,并根据分页自动处理下一页');
2025-03-24 14:59:19 +08:00
}
protected function execute(Input $input, Output $output)
{
2025-03-24 16:42:36 +08:00
$output->writeln('开始处理微信列表任务...');
2025-03-24 14:59:19 +08:00
try {
2025-04-11 16:15:48 +08:00
// 从缓存获取初始页码和上次处理的好友ID缓存10分钟有效
$pageIndex = Cache::get('friendsPage', 0);
$preFriendId = Cache::get('preFriendId', '');
$output->writeln('从缓存获取页码:' . $pageIndex . '上次处理的好友ID' . ($preFriendId ?: '无'));
2025-04-01 09:26:06 +08:00
$pageSize = 1000; // 每页获取1000条记录
2025-03-24 14:59:19 +08:00
2025-04-11 16:15:48 +08:00
// 将任务添加到队列
$this->addToQueue($pageIndex, $pageSize, $preFriendId);
2025-03-24 14:59:19 +08:00
2025-03-24 16:42:36 +08:00
$output->writeln('微信列表任务已添加到队列');
2025-03-24 14:59:19 +08:00
} catch (\Exception $e) {
2025-03-24 16:42:36 +08:00
Log::error('微信列表任务添加失败:' . $e->getMessage());
$output->writeln('微信列表任务添加失败:' . $e->getMessage());
2025-03-24 14:59:19 +08:00
return false;
}
return true;
}
/**
* 添加任务到队列
* @param int $pageIndex 页码
* @param int $pageSize 每页大小
2025-04-11 16:15:48 +08:00
* @param string $preFriendId 上一个好友ID
2025-03-24 14:59:19 +08:00
*/
2025-04-11 16:15:48 +08:00
protected function addToQueue($pageIndex, $pageSize, $preFriendId = '')
2025-03-24 14:59:19 +08:00
{
$data = [
'pageIndex' => $pageIndex,
2025-04-11 16:15:48 +08:00
'pageSize' => $pageSize,
'preFriendId' => $preFriendId
2025-03-24 14:59:19 +08:00
];
2025-03-24 16:42:36 +08:00
// 添加到队列,设置任务名为 wechat_friends
Queue::push(WechatFriendJob::class, $data, 'wechat_friends');
2025-03-24 14:59:19 +08:00
}
}