Laravel 中处理 AI API 超时的正确方式
在 Web 控制器中同步集成第三方 AI 或 LLM API 是一种架构陷阱,若响应缓慢会导致内存迅速耗尽。为缓解此问题,必须将外部执行移至解耦的异步后台进程中。Laravel Job 配置为安全处理外部 API 延迟提供了生产就绪的解决方案。这涉及创建一个如 ProcessAIPipeline 的作业,该作业实现 ShouldQueue 接口,并利用特性进行分发、交互和入队。需定义关键的重试设置(如 $tries 和 $backoff),以优雅地处理外部 API 超时。构造函数将必要数据(如提示词)传递给作业。handle 方法执行非线程处理,通过调用 AIEngineService 生成响应,从而保护应用的核心逻辑。这种解耦方法带来了若干关键的架构优势。首先,它确保立即释放客户端,允许控制器分发作业并立即返回 HTTP 202 Accepted 状态。其次,内置指数退避保护,通过优雅重试来处理速率限制或服务中断。这避免了未处理的 500 错误,并增强了系统韧性。第三,它提供解耦的可扩展性,便于将实现封装为可复用的开源供应商工具。归根结底,构建解耦的管道可保护基础设施免受连接超时影响,并保持核心生态系统的高度韧性。作者是一名拥有 9 年以上经验的软件工程师和数据科学家,专注于高并发 Laravel 系统和开源工具设计。