oQueueJob = new QueueJob(); } public function fire(Job $job, $data) { $this->oQueueJob->init($job); $taskId = isset($data['task_id']) ? intval($data['task_id']) : 0; if ($taskId <= 0) { $this->oQueueJob->log("PromotionSend 无效的 task_id,删除任务"); $job->delete(); return; } try { $service = new PromotionService(); $result = $service->processNextEmail($taskId); $done = !empty($result['done']) ? 1 : 0; $reason = isset($result['reason']) ? $result['reason'] : ''; $this->oQueueJob->log("PromotionSend 完成 | task_id={$taskId} done={$done} reason={$reason}"); $job->delete(); } catch (\Exception $e) { $this->oQueueJob->handleException($e, $job, "task_id={$taskId}"); } catch (\Throwable $e) { $this->oQueueJob->handleException($e, $job, "task_id={$taskId}"); } finally { $this->oQueueJob->finnal(); } } }