feat(admin-frontend): 新增节点自动上线托管能力
为节点新增 auto_online 字段与后台同步任务, 仅对开启托管的节点按在线状态自动同步前台显示。 管理端补齐单节点与批量开关、列表标识与统计, 并在自动上线启用时禁用手动显隐切换。 后端新增定时命令、保存校验、批量更新支持、 数据库迁移与单元测试,保证托管逻辑可落地。
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Services\ServerAutoOnlineService;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class SyncServerAutoOnline extends Command
|
||||
{
|
||||
protected $signature = 'sync:server-auto-online';
|
||||
|
||||
protected $description = 'Sync visible status for nodes with auto online enabled';
|
||||
|
||||
public function handle(ServerAutoOnlineService $service): int
|
||||
{
|
||||
$result = $service->sync();
|
||||
|
||||
$this->info(sprintf(
|
||||
'Server auto online synced: total=%d updated=%d shown=%d hidden=%d unchanged=%d',
|
||||
$result['total'],
|
||||
$result['updated'],
|
||||
$result['shown'],
|
||||
$result['hidden'],
|
||||
$result['unchanged']
|
||||
));
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
}
|
||||
@@ -44,6 +44,7 @@ class Kernel extends ConsoleKernel
|
||||
$schedule->command('horizon:snapshot')->everyFiveMinutes()->onOneServer();
|
||||
// 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);
|
||||
// backup Timing
|
||||
// if (env('ENABLE_AUTO_BACKUP_AND_UPDATE', false)) {
|
||||
// $schedule->command('backup:database', ['true'])->daily()->onOneServer();
|
||||
|
||||
Reference in New Issue
Block a user