info('Starting SSL certificate monitoring...'); // Fetch all sites with monitoring enabled $sites = Site::where('monitoring_enabled', true)->get(); if ($sites->isEmpty()) { $this->warn('No enabled sites found for SSL monitoring.'); return Command::SUCCESS; } $this->info("Found {$sites->count()} enabled site(s) for SSL monitoring."); // Create a batch of jobs to dispatch in parallel $jobs = $sites->map(function (Site $site) { return new CheckSslCertificate($site); }); // Dispatch jobs using Laravel's bus with batch processing Bus::chain([ function () use ($jobs) { Bus::batch($jobs->toArray()) ->name('SSL Certificate Monitoring') ->allowFailures() ->onQueue('monitoring') ->dispatch(); } ])->dispatch(); $this->info("Dispatched {$jobs->count()} SSL certificate check job(s)."); $this->comment('Jobs are being processed in the queue...'); return Command::SUCCESS; } }