ProcessAnalysisReportTaskJob.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Jobs;
  3. use App\Services\ExamAnalysisService;
  4. use Illuminate\Bus\Queueable;
  5. use Illuminate\Contracts\Queue\ShouldQueue;
  6. use Illuminate\Foundation\Bus\Dispatchable;
  7. use Illuminate\Queue\InteractsWithQueue;
  8. use Illuminate\Queue\SerializesModels;
  9. use Illuminate\Support\Facades\Log;
  10. class ProcessAnalysisReportTaskJob implements ShouldQueue
  11. {
  12. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  13. public int $tries = 3;
  14. public function __construct(
  15. public string $taskId,
  16. public string $paperId,
  17. public string $studentId,
  18. public ?string $recordId = null
  19. ) {
  20. // 与 PDF 相关重流程统一走 pdf 队列
  21. $this->onQueue('pdf');
  22. }
  23. public function handle(ExamAnalysisService $examAnalysisService): void
  24. {
  25. Log::info('ProcessAnalysisReportTaskJob: 开始处理学情报告任务', [
  26. 'task_id' => $this->taskId,
  27. 'paper_id' => $this->paperId,
  28. 'student_id' => $this->studentId,
  29. 'record_id' => $this->recordId,
  30. 'attempt' => $this->attempts(),
  31. ]);
  32. $examAnalysisService->processReportGenerationTask(
  33. $this->taskId,
  34. $this->paperId,
  35. $this->studentId,
  36. $this->recordId
  37. );
  38. }
  39. }