From ec99867379fb3d90bccc83dc450f0f734301dfb5 Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Tue, 8 Nov 2022 17:46:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=9F=A5=20=E4=B8=BB=E6=9C=BA?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Console/Kernel.php | 3 ++ app/Jobs/CheckHostIfExistsOnModule.php | 47 ++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 app/Jobs/CheckHostIfExistsOnModule.php diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index a6e864b..d31685f 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -8,6 +8,7 @@ use App\Jobs\Remote\FetchModule; use App\Jobs\Remote\PushWorkOrder; use App\Jobs\CheckAndChargeBalance; +use App\Jobs\CheckHostIfExistsOnModule; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; @@ -34,6 +35,8 @@ protected function schedule(Schedule $schedule) $schedule->job(new DeleteHost())->hourly(); + $schedule->job(new CheckHostIfExistsOnModule())->hourly()->withoutOverlapping()->onOneServer(); + $schedule->job(new CheckAndChargeBalance())->everyFiveMinutes()->onOneServer()->withoutOverlapping(); } diff --git a/app/Jobs/CheckHostIfExistsOnModule.php b/app/Jobs/CheckHostIfExistsOnModule.php new file mode 100644 index 0000000..f8db56b --- /dev/null +++ b/app/Jobs/CheckHostIfExistsOnModule.php @@ -0,0 +1,47 @@ +chunk(100, function ($hosts) { + foreach ($hosts as $host) { + $http = Http::remote($host->module->api_token, $host->module->url); + $response = $http->get('hosts/' . $host->id); + + if ($response->status() === 404) { + dispatch(new \App\Jobs\Remote\Host($host, 'delete')); + } + } + }); + } +}