From f560f03e7750b6c669c239826363f2153e62453d Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Sat, 4 Mar 2023 18:21:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=E5=87=BA=E9=94=99=E7=9A=84=E4=B8=BB=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Console/Kernel.php | 5 ++++- app/Jobs/Host/ScanErrorHostsJob.php | 33 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 app/Jobs/Host/ScanErrorHostsJob.php diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 5a744f0..2ae1997 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -4,7 +4,7 @@ use App\Jobs\Host\DeleteHostJob; use App\Jobs\Host\DispatchHostCostQueueJob; -use App\Jobs\Host\ScanAllHostsJob; +use App\Jobs\Host\ScanErrorHostsJob; use App\Jobs\Module\DispatchFetchModuleJob; use App\Jobs\Module\SendModuleEarningsJob; use App\Jobs\Subscription\DeleteDraftJob; @@ -49,6 +49,9 @@ protected function schedule(Schedule $schedule): void // 检查主机是否存在于模块 // $schedule->job(new ScanAllHostsJob())->everyThirtyMinutes()->withoutOverlapping()->onOneServer()->name('检查主机是否存在于模块'); + // 扫描出错的主机 + $schedule->job(new ScanErrorHostsJob())->everyThirtyMinutes()->withoutOverlapping()->onOneServer()->name('扫描出错的主机'); + // 检查未充值的订单,并充值 $schedule->job(new CheckAndChargeBalanceJob())->everyFiveMinutes()->onOneServer()->withoutOverlapping()->name('检查未充值的订单,并充值'); diff --git a/app/Jobs/Host/ScanErrorHostsJob.php b/app/Jobs/Host/ScanErrorHostsJob.php new file mode 100644 index 0000000..adc073a --- /dev/null +++ b/app/Jobs/Host/ScanErrorHostsJob.php @@ -0,0 +1,33 @@ +whereIn('status', ['error', 'pending', 'unavailable'])->with('module')->chunk(100, function ($hosts) { + foreach ($hosts as $host) { + // 忽略维护中的模块 + if ($host->module->status !== 'up') { + continue; + } + + $host->updateOrDelete(); + } + }); + } +}