ProcessAITranslateJob.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace App\Jobs;
  3. use App\Services\AiTranslateService;
  4. use Illuminate\Support\Facades\Log;
  5. class ProcessAITranslateJob extends BaseRabbitMQJob
  6. {
  7. protected function processMessage(array $messageData)
  8. {
  9. $startTime = microtime(true);
  10. try {
  11. $translateService = app(AiTranslateService::class);
  12. return $translateService->processTranslate($messageData);
  13. } catch (\Exception $e) {
  14. // 记录失败指标
  15. throw $e;
  16. } finally {
  17. // 记录处理时间
  18. $processingTime = microtime(true) - $startTime;
  19. Log::info('翻译处理耗时', ['time' => $processingTime]);
  20. }
  21. }
  22. protected function handleFinalFailure(array $messageData, \Exception $exception)
  23. {
  24. parent::handleFinalFailure($messageData, $exception);
  25. // 订单特定的失败处理
  26. $orderService = app(AiTranslateService::class);
  27. $orderService->handleFailedTranslate($messageData, $exception);
  28. }
  29. }