chatId = $chatId; $this->text = $text; $this->buttons = $buttons; $this->image = $image; $this->isTop = $isTop; } public function handle() { try { BaseService::sendMessage($this->chatId ,$this->text, $this->buttons, $this->image); } catch (\Telegram\Bot\Exceptions\TelegramResponseException $e) { // 捕获 Too Many Requests if (str_contains($e->getMessage(), 'Too Many Requests')) { preg_match('/retry after (\d+)/', $e->getMessage(), $matches); $retryAfter = $matches[1] ?? 5; Log::warning("Telegram 429 限制,等待 {$retryAfter} 秒重试..."); sleep($retryAfter + 1); // 重试 $this->handle(); } else { Log::error('Telegram 消息发送失败: '.$e->getMessage()); } } } }