Spaces:
Running
Running
File size: 1,192 Bytes
907b200 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <?php
namespace App\Jobs;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
class RunScreeningJob implements ShouldQueue
{
use Queueable;
public function __construct(protected \App\Models\ScreeningResult $screeningResult) {}
public function handle(\App\Services\ScreeningService $screeningService): void
{
$this->screeningResult->update(['status' => 'processing']);
try {
$input = $this->screeningResult->input;
$output = $screeningService->screen($input);
if (is_array($output)) {
unset($output['warnings']);
}
$this->screeningResult->update([
'output' => $output,
'status' => 'completed',
]);
} catch (\Exception $e) {
\Illuminate\Support\Facades\Log::error('Screening job failed', [
'id' => $this->screeningResult->id,
'error' => $e->getMessage()
]);
$this->screeningResult->update([
'status' => 'failed',
'output' => ['error' => $e->getMessage()],
]);
}
}
}
|