FastAPI异步任务:用BackgroundTasks处理耗时操作
在Web开发中,直接在API接口处理耗时操作(如发送邮件、生成报表)会阻塞用户等待,影响体验。FastAPI的`BackgroundTasks`可在请求响应后异步执行这类任务,避免阻塞。 `BackgroundTasks`是FastAPI提供的类,在请求处理完成后自动执行后台任务,不阻塞接口响应。使用仅需三步:导入`BackgroundTasks`,在路由函数声明`bg`参数,通过`bg.add_task()`注册耗时函数及参数。 示例:模拟生成大文件(耗时5秒),用户提交请求后,接口立即返回成功,文件生成在后台异步完成。 关键点:任务在响应后执行,支持位置/关键字参数和顺序执行,适用于I/O密集型任务(如文件读写),不适合CPU密集型;不捕获异常,任务失败需自行处理;应用重启或崩溃会丢失未执行任务,不适合持久化任务。 `BackgroundTasks`轻量易用,通过快速响应提升用户体验,适用于非关键路径的耗时操作。
阅读全文Nginx动静分离:让你的网站加载更快更稳
Nginx动静分离是将静态资源(图片、CSS、JS等)与动态资源(PHP、API等)分开处理,Nginx专注静态资源快速返回,后端服务器处理动态请求,可提升页面加载速度、减轻后端压力、增强扩展性(静态资源可上CDN,动态请求可负载均衡)。实现核心是通过Nginx的`location`指令区分请求:静态资源(如`.jpg`、`.js`)用`root`指令指定路径直接返回;动态请求(如`.php`)通过`fastcgi_pass`等转发后端(如PHP-FPM)。实战中,需在Nginx配置文件`server`块内,用`~*`匹配静态后缀并设路径,用`~`匹配动态请求并转发后端,验证无误后重启Nginx即可生效,优化网站性能。
阅读全文