feat(api): 新增节点墙检测自动托管与显隐
新增定时墙检测命令与节点托管字段,自动为开启托管的父 节点创建检测任务,并在 blocked 时自动隐藏节点、normal 时仅恢复由墙检测自动隐藏的节点 更新自动上线服务以尊重 blocked 与自动隐藏状态,避免疑 似被墙节点被重新发布;同时补齐管理端墙检测托管开关、 刷新入口、批量设置与相关测试和知识库同步
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Services\ServerGfwCheckService;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class SyncServerGfwChecks extends Command
|
||||
{
|
||||
protected $signature = 'sync:server-gfw-checks {--limit= : Maximum number of nodes to enqueue}';
|
||||
|
||||
protected $description = 'Create automated GFW check tasks for managed parent nodes';
|
||||
|
||||
public function handle(ServerGfwCheckService $service): int
|
||||
{
|
||||
$limit = $this->option('limit');
|
||||
$result = $service->startAutomaticChecks(
|
||||
is_numeric($limit) ? (int) $limit : null
|
||||
);
|
||||
|
||||
$this->info(sprintf(
|
||||
'Server GFW checks synced: total=%d started=%d skipped=%d active=%d',
|
||||
$result['total'],
|
||||
count($result['started']),
|
||||
count($result['skipped']),
|
||||
$result['active']
|
||||
));
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
}
|
||||
@@ -45,6 +45,7 @@ class Kernel extends ConsoleKernel
|
||||
// cleanup stale online_count (GC for Redis TTL expiration)
|
||||
$schedule->command('cleanup:online-status')->everyFiveMinutes()->onOneServer();
|
||||
$schedule->command('sync:server-auto-online')->everyFiveMinutes()->onOneServer()->withoutOverlapping(5);
|
||||
$schedule->command('sync:server-gfw-checks')->everyThirtyMinutes()->onOneServer()->withoutOverlapping(30);
|
||||
// backup Timing
|
||||
// if (env('ENABLE_AUTO_BACKUP_AND_UPDATE', false)) {
|
||||
// $schedule->command('backup:database', ['true'])->daily()->onOneServer();
|
||||
|
||||
Reference in New Issue
Block a user