message = $message; parent::__construct(['message_id' => $message->id]); } /** * 执行队列任务 * * @return bool */ public function run(): bool { try { // 获取消息服务实例 $messageService = app(AppMessageService::class); // 处理消息发送逻辑 // TODO: 实现消息发送逻辑 // 例如:发送WebSocket通知、更新消息状态等 return true; } catch (\Exception $e) { // 记录错误日志 Log::error('发送应用消息失败', [ 'message_id' => $this->message->id, 'error' => $e->getMessage(), 'trace' => $e->getTraceAsString() ]); return false; } } /** * 获取任务数据 * * @return array */ public function payload() { return [ 'message_id' => $this->message->id, 'message_data' => $this->message->toArray() ]; } /** * 处理失败的任务 * * 当任务执行失败或发生异常时会调用此方法 * 可以在这里实现: * 1. 记录错误日志 * 2. 发送失败通知 * 3. 更新消息状态为发送失败 * 4. 触发告警 * 等失败处理逻辑 * * @param \Throwable $exception 导致任务失败的异常实例 * @return void */ public function failed(\Throwable $exception): void { // TODO: 实现失败处理逻辑 // 例如:记录失败日志、更新消息状态等 } }