922e86070d
新增节点级月流量限额配置、重置调度和运行状态持久化 下发 traffic_limit 给 mi-node,并在超额后停止内核、到期后恢复 管理端支持编辑限额参数并展示额度进度、状态和下次重置 手动与定时重置会同步清理限额状态并通知节点刷新配置
37 lines
1.1 KiB
PHP
37 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use App\Services\ServerTrafficLimitService;
|
|
use Illuminate\Console\Command;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class SyncServerTrafficLimits extends Command
|
|
{
|
|
protected $signature = 'sync:server-traffic-limits';
|
|
|
|
protected $description = '重置到期的节点流量限额状态';
|
|
|
|
public function handle(ServerTrafficLimitService $service): int
|
|
{
|
|
try {
|
|
$result = $service->resetDueServers();
|
|
$this->info("处理 {$result['processed']} 个节点,重置 {$result['reset']} 个节点");
|
|
|
|
if (!empty($result['errors'])) {
|
|
$this->warn('部分节点重置失败,详情请查看日志');
|
|
}
|
|
|
|
return self::SUCCESS;
|
|
} catch (\Throwable $e) {
|
|
Log::error('节点流量限额同步失败', [
|
|
'error' => $e->getMessage(),
|
|
'trace' => $e->getTraceAsString(),
|
|
]);
|
|
$this->error("节点流量限额同步失败: {$e->getMessage()}");
|
|
|
|
return self::FAILURE;
|
|
}
|
|
}
|
|
}
|