diff --git a/app/Jobs/PollFuelPricesJob.php b/app/Jobs/PollFuelPricesJob.php index d9ef216..98d70da 100644 --- a/app/Jobs/PollFuelPricesJob.php +++ b/app/Jobs/PollFuelPricesJob.php @@ -2,16 +2,26 @@ namespace App\Jobs; +use App\Events\PricesUpdatedEvent; +use App\Services\FuelPriceService; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Queue\Queueable; -use Illuminate\Support\Facades\Artisan; +/** + * Background full station refresh + price poll, dispatched from the admin + * "Trigger Full Poll" button. Mirrors the `fuel:poll --full` command but + * calls the service directly so typed exceptions surface to the queue's + * failed-job handler instead of being swallowed by Artisan output buffering. + */ class PollFuelPricesJob implements ShouldQueue { use Queueable; - public function handle(): void + public function handle(FuelPriceService $service): void { - Artisan::call('fuel:poll', ['--full' => true]); + $service->refreshStations(); + $inserted = $service->pollPrices(); + + PricesUpdatedEvent::dispatch($inserted, true); } }